Size: a a a

2019 October 11

M

Mi in Data Engineers
Kirill
Есть в чате знатоки спарка? Вопрос - делаю leftsemi джойн двух датафремов и вижу что проиходит полный шафл правого датафрейма, хотя от него нужна только одна колонка. Т.е. по сути мне нужно сделать селект одной колонки правого датафрейма чтобы все было в разы быстрее. Почему catalyst такое не ловит? Есть ли ишью(я не нашел)?
Так там может шафл одной колонки и происходит? Ещё наверное зависит от того какой кондишн
источник

K

Kirill in Data Engineers
df2 = охуенно широкая таблица с 100500 колонок
df1 = охуенно высокая таблица с 100500 строк

df1.join(df2, on=key, how=left_semi)
источник

K

Kirill in Data Engineers
В самом спарке в org/apache/spark/sql/catalyst/optimizer/Optimizer.scala:836 вот такое:

LeftSemi is kind of an
       // inner join, it just drops the right side in the final output.
источник

M

Mi in Data Engineers
Kirill
В самом спарке в org/apache/spark/sql/catalyst/optimizer/Optimizer.scala:836 вот такое:

LeftSemi is kind of an
       // inner join, it just drops the right side in the final output.
тогда это грустно
источник

TB

Torlin Bios in Data Engineers
Kirill
Есть в чате знатоки спарка? Вопрос - делаю leftsemi джойн двух датафремов и вижу что проиходит полный шафл правого датафрейма, хотя от него нужна только одна колонка. Т.е. по сути мне нужно сделать селект одной колонки правого датафрейма чтобы все было в разы быстрее. Почему catalyst такое не ловит? Есть ли ишью(я не нашел)?
Как вариант попробовать забродкастить датафрейм с одной колонкой, и если там размер все ровно большой и она автоматом не забродкастится, то можно ещё выставить размер сюда spark.sql.autoBroadcastJoinThreshold, но нужно аккуратно выставлять размер
источник

K

Kirill in Data Engineers
у меня более теоретический вопрос) то что ты говоришь правда, да
источник

R

Renarde in Data Engineers
Всем привет! Вопрос к тем, кто использует Kafka + Spark Structured Streaming.
Проблема такая - данные писались стриминговым пайплайном, с чекпоинтами. Затем пайплайн отключили на определенный промежуток времени, а потом включили вновь.
Проблема в том, что в кафке за это время накопилось очень много эвентов, и чтение этого первого батча занимает очень много времени. Как правильно лимитировать спарк, так чтобы он разбирал очередь константными частями (скажем, по X эвентов за один микро-батч)?
источник

GP

Grigory Pomadchin in Data Engineers
Renarde
Всем привет! Вопрос к тем, кто использует Kafka + Spark Structured Streaming.
Проблема такая - данные писались стриминговым пайплайном, с чекпоинтами. Затем пайплайн отключили на определенный промежуток времени, а потом включили вновь.
Проблема в том, что в кафке за это время накопилось очень много эвентов, и чтение этого первого батча занимает очень много времени. Как правильно лимитировать спарк, так чтобы он разбирал очередь константными частями (скажем, по X эвентов за один микро-батч)?
попробуй выставить маленький maxRatePerPartition, но имей ввиду это рейт на партицию в секунду
источник

GP

Grigory Pomadchin in Data Engineers
и бекпрешша конечно должна быть включена
источник

N

Natalia in Data Engineers
spark.streaming.kafka.maxRatePerPartition
источник

R

Renarde in Data Engineers
Natalia
spark.streaming.kafka.maxRatePerPartition
а это в Structured Streaming работает?
источник

GP

Grigory Pomadchin in Data Engineers
Renarde
а это в Structured Streaming работает?
попробуй расскажешь, есть ещё maxOffsetsPerTrigger
источник

GP

Grigory Pomadchin in Data Engineers
Я не помню что в каком случае работает, но по баззвордам нагуглишь
источник

R

Renarde in Data Engineers
и то и другое выкрутил на минимум - не работает
источник

GP

Grigory Pomadchin in Data Engineers
бекпрешша то есть?
источник

GP

Grigory Pomadchin in Data Engineers
Оно без неё работать не будет
источник

N

Natalia in Data Engineers
источник

N

Natalia in Data Engineers
Похожий вопрос. Похоже  preparation не работает, per trigger - работает
источник

N

Natalia in Data Engineers
Я только в обычном стрименге задавала.
источник

t

tenKe in Data Engineers
в structured streaming maxOffsetsPerTrigger работает
источник