Size: a a a

2019 November 28

A

Alexander in Data Engineers
Коллеги, а если я джойню две хайвовские таблицы в спарке. Одна из них огромная и партиционирована по ingest_date. Вторая относительно небольшая и в колонке ingest_date у неё во всех строках одно значение. Условие джойна ingest_date=ingest_date. Как заставить спарк не читать полностью эту огромную таблицу, а взять только одну нужную партицию?
источник

A

Alex in Data Engineers
а спарк сам разве не подхватывает это?
источник

DM

Daniel Matveev in Data Engineers
а он научился стату собирать?
источник

A

Alex in Data Engineers
обычно нормально метаданные с хайва вытягивает про партиции
источник

DM

Daniel Matveev in Data Engineers
Alex
обычно нормально метаданные с хайва вытягивает про партиции
а про селективность полей?
источник

A

Alex in Data Engineers
при чем тут стата?
в хайв метаданных лежит что партиционирование по указанной колонке
источник

A

Alex in Data Engineers
Одна из них огромная и партиционирована по ingest_date
источник

A

Alex in Data Engineers
то есть уже на указанную дату в отдельной папке лежит
источник

A

Alex in Data Engineers
хотя кажется понял
источник

A

Alex in Data Engineers
@VsadnikBG у вас в where висит условие чтобы только одну указанную дату выгребать
источник

AB

Anton Balagaev in Data Engineers
Alexey Evdokimov
Anton @epikhinm это выглядит как игрушечный экскаватор для поиграться на питончике в локальной песочнице. моя программа максимум — сделать аппарат для добычи руды с астероидов, и продавать как сервис в облаках. отчуждаемый продукт, а не фреймворк. если мы таки сможем кому-нибудь крупному продаться... 6 лет наш стартап существует, а автоматизацию пилим уже больше двух. не сможем продаться — оставим у себя без гуя, видимо.

про кейс я уже точно решил после НГ сделаю серию статей на хабре. про то, как с прототипа на MapReduce + PostGIS пришли к спарку на AWS, снизили себестоимость в 1000 и ускорились в 10000 раз. по дороге были ещё повороты в Azure и geospark, путешествие было интересным.
Звучит круто, удачи вам!
источник

A

Alex in Data Engineers
или выхотие чтобы на КАЖДУЮ из указанных дат в меньшей таблице он на джойне лез в нужную партицию
источник

A

Alex in Data Engineers
@optician_owl если нигде нету указания дат, то да, полезет во все партиции .... так как у мелкой он не знает какие нужны даты пока не прочитает
источник

ME

Mikhail Epikhin in Data Engineers
Alexey Evdokimov
Anton @epikhinm это выглядит как игрушечный экскаватор для поиграться на питончике в локальной песочнице. моя программа максимум — сделать аппарат для добычи руды с астероидов, и продавать как сервис в облаках. отчуждаемый продукт, а не фреймворк. если мы таки сможем кому-нибудь крупному продаться... 6 лет наш стартап существует, а автоматизацию пилим уже больше двух. не сможем продаться — оставим у себя без гуя, видимо.

про кейс я уже точно решил после НГ сделаю серию статей на хабре. про то, как с прототипа на MapReduce + PostGIS пришли к спарку на AWS, снизили себестоимость в 1000 и ускорились в 10000 раз. по дороге были ещё повороты в Azure и geospark, путешествие было интересным.
Так никто и не спорит, что в облаке купить лучше:) тут я поддерживаю:)
источник

A

Alexander in Data Engineers
Alex
или выхотие чтобы на КАЖДУЮ из указанных дат в меньшей таблице он на джойне лез в нужную партицию
Не указано, но я знаю, что в маленькой таблице у меня только одна дата. По ней и джойню, но джоб валится из-за того, что вторая таблица огромна и спарк её всю читает. Точнее так: я эти таблицы джойню как датафреймы
источник

A

Alex in Data Engineers
вы знаете, а спарк откуда знать может? =)
источник

A

Alexander in Data Engineers
Ну так вот как ему об этом сообщить? Есть способ, кроме фильтрации большой таблицы до джойна?
источник

A

Alex in Data Engineers
на крайняк возьмите первую запись из мелкой, вытяните дату и составьте более конкретный запрос дополнительно с этой датой явно 😅
источник

A

Alex in Data Engineers
на вторую таблицу
источник

A

Alex in Data Engineers
если обе таблицы на диске, то вытянуть будет копьё первого row
источник