Size: a a a

2021 November 26

ИК

Иван Калининский... in Moscow Spark
так и живём))
источник

A

Alex in Moscow Spark
да, у нас такая же сейчас ситуация, часть кода вот и отвалилась на тестах 🤣🤣🤣
как запустим возможно начнём свой код дропать дальше
источник

A

Alex in Moscow Spark
@KaiNie_R в 3.2 они много чего обновили

1. включили adaptive (следовательно некоторые тесты на repartition поехали)
2. avro 1.8 -> 1.10 обновили
3. parquet 1.10 -> 1.12 обновили (у нас было пару патчей которые тянулись на lowering полей схемы в момент read metadata, тянулись ещё с момента когда спарк читал case sensitive имена полей из паркета )

ещё по мелочи вылезло
в общем не похоже на мелкий релиз
источник

ПБ

Повелитель Бури... in Moscow Spark
как раз на видяху хватит )
источник
2021 November 27

G

Gev in Moscow Spark
НАрод, не подскажете на простой вопрос - на сколько эфективно использовать union dataframe и если нет - чем его заменить/тюнить?
источник

ИК

Иван Калининский... in Moscow Spark
Union двух датафреймов просто и эффективно выполняется, это дешёвая операция. Раньше (spark 2.2, может и более поздние версии, не следил) была проблема с построением плана, содержащего очень большое количество union (сотни, тысячи), потому что для каждого нового проверялись схемы всех ранее добавленных датафреймов, а это сложность O(n^2). В 2.4 проблему пофиксили, добавив "объединитель" юнионов в планах catalyst. Теперь разница очень невелика и можно ничем не заменять, только если очень хочется))
И ещё есть unionByName, можно не заботится о выборке полей в одинаковом порядке, спарк сам упорядочит как надо

Заменить можно через sparkContext.union(RDDs) и создание датафрейма на основе RDD и схемы, это всегда работает быстро и надёжно
Если есть навыки работы с планами Catalyst, то ещё лучше: можно передать в Union (это элемент логического плана) сколько угодно других логических планов. Самый быстрый известный мне способ
Или вот такой вариант: просто материализовать в одной и той же директории (сохранить) и в дальнейшем читать оттуда. Сохранение займёт время, будет оверхед на запуск джобов и их нельзя просто параллелить (одна и та же директория - возможны конфликты записи). Но иногда это как раз то, что нужно
источник

G

Gev in Moscow Spark
Спасибо за такой подробный ответ 👍
В том то и дело что у меня 2.2
источник

NN

No Name in Moscow Spark
Мб это уже обсуждалось ранее, тогда прошу простить, но что мешает взять спарк поновее?
источник

G

Gev in Moscow Spark
Это сложно. Мы переедем скоротно пока надо отчетность сдать
источник

NN

No Name in Moscow Spark
А в чем сложность видится?
источник

G

Gev in Moscow Spark
Организационные :)
источник

G

Gev in Moscow Spark
Общий кластер для нескольких подразделений и переезд очень болезненный
источник

ЕГ

Евгений Глотов... in Moscow Spark
Подложить папку со спарком насколько болезненно?
источник

ЕГ

Евгений Глотов... in Moscow Spark
Девопсы конечно подадут жалобу "насилие/призыв к суициду")
источник

ЕГ

Евгений Глотов... in Moscow Spark
Но зато можно будет работать с новым)
источник
2021 November 28

AS

Andrey Smirnov in Moscow Spark
там могут быть джобы у которых прописаны версии 2.2 и т.д.
плюс возможны смены каких-нибудь параметров по умолчанию в самом спарке, это надо оттестировать и т.д.
источник

ЕГ

Евгений Глотов... in Moscow Spark
Ну так и оттестируйте на джобах, в которых поменяете 2.2 на 3.2)
источник

ЕГ

Евгений Глотов... in Moscow Spark
источник

ЕГ

Евгений Глотов... in Moscow Spark
Вот сколько уже третий спарк есть - большинству всё некогда его оттестировать)
источник

ЕГ

Евгений Глотов... in Moscow Spark
Ну в принципе время на это есть только с 3 до 5 утра, так что либо придётся его потратить, либо не влезать в это)
источник