Size: a a a

2021 April 19

SG

Sergey Golovkin in Moscow Spark
Спасибо, попробую
источник

АА

Артем Анистратов... in Moscow Spark
Посмотри apache poi, на нем crealytics работает.

Вообще ты можешь пользоваться питоном cо спраком, на питоне достаточно библиотек работающих
с екселем по типу: ексель -> пандас -> спарк
источник

АА

Артем Анистратов... in Moscow Spark
Как минимум питоном ты можешь конвертнуть xls в xlsx, затем подсовывать в crealytics
источник

SG

Sergey Golovkin in Moscow Spark
У меня scala. Xls высчитывается через poi отлично. Теперь надо только конструкцию типа List[List[String]] в Spark передать.
источник

SG

Sergey Golovkin in Moscow Spark
Проблема пока толко в том, что количество ячеек динамическое.
источник

SG

Sergey Golovkin in Moscow Spark
Не совсем понятно, как list преобразовать в row, чтобы Spark смог прочитать.
источник

ЕГ

Евгений Глотов... in Moscow Spark
Нужно выделить целевую схему и забить нуллом все колонки, которых нет в строке
источник

АА

Артем Анистратов... in Moscow Spark
Через poi ты никак не сможешь работать с объектами екселя по типу dataRange(в формулировке могу ошибаться).

Опять же если выбор скалы, это только зона привычности, имхо, стоит переступить через себя и воспользоваться возможностями питона.

Если же это ограничение системы, тогда соглашусь, нужно городить костыли
источник

АА

Артем Анистратов... in Moscow Spark
А ты импортируешь:
Import spark.implicits._
?
С этим импортом у листа появляется метод list.toDF
источник

SG

Sergey Golovkin in Moscow Spark
Да, только он внутренний лист не разбивает на колонки.
источник

SG

Sergey Golovkin in Moscow Spark
Ему надо внутренний лист преобразовать в Typle. А в нем заранее не известно число элементов.
источник

АА

Артем Анистратов... in Moscow Spark
При создании датафржйма из листа, ты можешь подсунуть ему схему будущего датафрэйма. Используй structType и arrayType
источник

ИК

Иван Калининский... in Moscow Spark
Сегодня решал похожую проблему, если число элементов во внутренних List одинаковое, то его можно получить и сделать select(range(0,n).map(i =>col("listName")(i) as s"list_$i")):_*)
источник

ИК

Иван Калининский... in Moscow Spark
Если где скобку забыл, сорян
источник

SG

Sergey Golovkin in Moscow Spark
Спасибо, попробую.
источник

ПФ

Паша Финкельштейн... in Moscow Spark
кому-то лень писать, я думаю. А может тяжко оптимизировать пифоманс (и мы не знаем что в либе с ним). Если там udf — то будет прфоманс хит вероятно. ) И да, похоже только под третий спарк.
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Я читал, да.
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Это не совсем правда. Данные оттуда Apache POI умел читать
источник

SG

Sergey Golovkin in Moscow Spark
А в Spark получилось результат передать?
источник

ПФ

Паша Финкельштейн... in Moscow Spark
получалось, но всё руками конечно. И у нас там ни формул, ничего не было. А правда ли что никак не избежать работы с xls? Ну там типа бизнес попросить в xlsx сохранять
источник