Size: a a a

2021 February 04

D

Dmitry in Moscow Spark
кажется я все осознал и преисполнился)
источник

D

Dmitry in Moscow Spark
спасибо!)
источник

Н

Никита in Moscow Spark
Добрый день, подскажите чо делать, если послендяя таска в app mastere'е выполняется более 20 часов (медиана 15 сек). Я читал про skew join'ы, но у меня даже джоинов нет
источник

A

Alex in Moscow Spark
посмотреть что за таска и где висит
источник

Н

Никита in Moscow Spark
У меня на pyspark rdd, а как я могу узнать, что конкретно там выполняется? Последнее событие в логах stderr 15 чаасов назад
источник

Д

Дмитрий in Moscow Spark
источник

Д

Дмитрий in Moscow Spark
Dmitry
спасибо!)
Посмотри по ссылке, может подойдет метод.
источник
2021 February 05

M

Mi in Moscow Spark
Может кто может подсказать, есть ли способ адекватно контролировать размер файла при записи спарком в партиционированную папку?
источник

AB

Andrey Bel in Moscow Spark
Mi
Может кто может подсказать, есть ли способ адекватно контролировать размер файла при записи спарком в партиционированную папку?
я только сравнивал размер примерный датасета , объем папки и исходя из этого делал разное значение партицирования при записи авро
источник

ИК

Иван Калининский... in Moscow Spark
Mi
Может кто может подсказать, есть ли способ адекватно контролировать размер файла при записи спарком в партиционированную папку?
Я оцениваю исходный объём данных, делаю поправки на исходное сжатие и конечное сжатие и делю на размер блока HDFS. Получается желаемое количество конечных файлов n, далее делаю .repartition(n, expr), где expr - выражение, содержащее n значений, как правило - monotonically_increasing_id() % n.
При этом, конечно, надо учитывать партиционирование конечной таблицы (если есть). Коллизии неизбежны, то есть, какие-то файлы будут примерно в два-три раза больше, чем медианный размер, но их будет немного
источник

AB

Andrey Bel in Moscow Spark
Иван Калининский
Я оцениваю исходный объём данных, делаю поправки на исходное сжатие и конечное сжатие и делю на размер блока HDFS. Получается желаемое количество конечных файлов n, далее делаю .repartition(n, expr), где expr - выражение, содержащее n значений, как правило - monotonically_increasing_id() % n.
При этом, конечно, надо учитывать партиционирование конечной таблицы (если есть). Коллизии неизбежны, то есть, какие-то файлы будут примерно в два-три раза больше, чем медианный размер, но их будет немного
Когда пишу авро на hdfs то обычно они ровно размер распределяются
источник

A

Alex in Moscow Spark
потому что авро ты пишешь последовательно
источник

A

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

ИК

Иван Калининский... in Moscow Spark
Mi
Может кто может подсказать, есть ли способ адекватно контролировать размер файла при записи спарком в партиционированную папку?
если конечная папка партиционирована, то в выражение я кидаю UDF, в которой есть предрасчитанные количества файлов для каждой партиции. Значения ключей партиционирования конкатенирую в строку через «;»

val parts: Map[String, Int] = {посчитать количество файлов для каждой партиции}
val udfByMap = udf { partColumns: String => parts.getOrElse(partColumns, 1) }
источник

M

Mi in Moscow Spark
Интересный подход, но увы не подходит для моего кейса
источник

ИК

Иван Калининский... in Moscow Spark
вот примерно так, из трёхсот тысяч файлов 99,8 были в пределах 5% от целевого значения
источник

ИК

Иван Калининский... in Moscow Spark
Mi
Интересный подход, но увы не подходит для моего кейса
А кейс в чём заключается?
источник

M

Mi in Moscow Spark
Иван Калининский
А кейс в чём заключается?
По умолчанию мы льём один файл в париицию, и периодически бывает что этот файл неприлично большой, нужен относительно дешёвый способ его разбить на поменьше файлы в таких случаях
источник

ИК

Иван Калининский... in Moscow Spark
если это батч, то просто repartition(n) - при этом n всё равно надо предварительно рассчитать
источник

AB

Andrey Bel in Moscow Spark
Mi
По умолчанию мы льём один файл в париицию, и периодически бывает что этот файл неприлично большой, нужен относительно дешёвый способ его разбить на поменьше файлы в таких случаях
Может сделать костыль с каунтом, если каун большой то делать партиуий больше,?
источник