Size: a a a

2019 November 20

GT

Gennady Timofeev in Moscow Spark
Igor Gorbenko
Это нормальная практика работы с EMR - терминация кластера после окончания обработки батча. Особый шик - кластер не спотах, вот где экономия 😀
Так это ещё и нормальная практика, ох. Спасибо, грустновато
источник

SO

Simon Osipov in Moscow Spark
Добрый вечер!
Подскажите, пожалуйста:

Есть sql запрос:
select * from l where l.a in (select max(c) from r)


Через SparkSQL все реализуется просто и легко. Возможно ли такой трюк subquery провернуть над SparkDF?
источник

SO

Simon Osipov in Moscow Spark
Нашел только https://issues.apache.org/jira/browse/SPARK-23945 запрос на похожую фичу..
источник

A

Anton Lebedevich in Moscow Spark
в подзапросе никаких groupby, только одна строка результата с максимумом?
источник

SO

Simon Osipov in Moscow Spark
Anton Lebedevich
в подзапросе никаких groupby, только одна строка результата с максимумом?
ага
источник

A

Anton Lebedevich in Moscow Spark
обычно подзапросы разворачиваются в join, но тут явно надо сначала выполнить одно, а потом другое, чтобы сильно зарезать размер результата
источник

A

Anton Lebedevich in Moscow Spark
так, а тупое:
tmp = r.select(F.max('c').alias('max_c'))
l.join(tmp, tmp.max_c == l.c).show()
не прокатит?
источник

A

Anton Lebedevich in Moscow Spark
спарк консоли нет под рукой проверить
источник

SO

Simon Osipov in Moscow Spark
Спасибо за подсказку, пойду тестировать
источник

A

Anton Lebedevich in Moscow Spark
там еще может понадобится подсказать, что tmp надо бродкастнуть, чтобы не пытался весь l в шафл отправить
источник
2019 November 21

AK

Alena Korogodova in Moscow Spark
Ну, можно ещё значение коллектом в переменную затащить. И потом её значение в запрос подставить 😁
источник

A

Anton Lebedevich in Moscow Spark
норм вариант, кстати, т.к. бродкаст про сути это же сделает
источник

TA

Trudova Alexandra in Moscow Spark
Всем привет! Подскажите, пожалуйста, есть ли возможность определить размер паркета до его записи на диск? Нужно, чтобы спарк формировал файлы в пределах заданного размера.
источник

KS

Kostya Shchetkin in Moscow Spark
Simon Osipov
Добрый вечер!
Подскажите, пожалуйста:

Есть sql запрос:
select * from l where l.a in (select max(c) from r)


Через SparkSQL все реализуется просто и легко. Возможно ли такой трюк subquery провернуть над SparkDF?
А посмотри план запроса, что там выполняется?
источник

KS

Kostya Shchetkin in Moscow Spark
Trudova Alexandra
Всем привет! Подскажите, пожалуйста, есть ли возможность определить размер паркета до его записи на диск? Нужно, чтобы спарк формировал файлы в пределах заданного размера.
Есть,  точно не помню как option называется, что-то вроде maxsizeperfile
источник

TA

Trudova Alexandra in Moscow Spark
Kostya Shchetkin
Есть,  точно не помню как option называется, что-то вроде maxsizeperfile
Нужно не только верхнюю границу задавать, но и нижнюю. Т.е. нужно, чтобы спарк формировал файлы заданного размера
источник

DK

Denis Kornilov in Moscow Spark
Trudova Alexandra
Нужно не только верхнюю границу задавать, но и нижнюю. Т.е. нужно, чтобы спарк формировал файлы заданного размера
Варианта 2 как я понимаю:
1. Если ты знаешь сколько примерно
строк в каждом файле должно быть, то сначала делаем count и на его основе вычисляем количество выходных партиций.

2. Сохранить в tmp на hdfs, вычислить размер, потом репартицировать и сохранить как надо.

В обеих вариантах свои нюансы, но все работает.
источник

TA

Trudova Alexandra in Moscow Spark
Denis Kornilov
Варианта 2 как я понимаю:
1. Если ты знаешь сколько примерно
строк в каждом файле должно быть, то сначала делаем count и на его основе вычисляем количество выходных партиций.

2. Сохранить в tmp на hdfs, вычислить размер, потом репартицировать и сохранить как надо.

В обеих вариантах свои нюансы, но все работает.
Спасибо.  В первом варианте, как понимаю, надо средний размер строки знать
источник

DK

Denis Kornilov in Moscow Spark
Trudova Alexandra
Спасибо.  В первом варианте, как понимаю, надо средний размер строки знать
Да. Еще нужно учитывать, что итоговый размер очень сильно зависит от сортировки внутри партиции, кодека сжатия и т.д.
источник

TA

Trudova Alexandra in Moscow Spark
Denis Kornilov
Да. Еще нужно учитывать, что итоговый размер очень сильно зависит от сортировки внутри партиции, кодека сжатия и т.д.
Спасибо
источник