Size: a a a

2020 May 29

AZ

Alexey Zinoviev in Moscow Spark
Паша Финкельштейн
С моей точки зрения непонятно зачем писать на детефреймах потому что есть же SQL для которого тоже есть автодополнение хотя бы табличек внутри запроса и при этом его знают типа все и грамматика у него суперпредсказуемая и можно делать интересные штуки типа
FROM A a JOIN B b ON b.id=a.user_id JOIN C c ON a.id=c.some_id AND b.id=c.author_id.
В спарковой грамматике это не очень тривиально пишется, а на SQL это хоть дерево напишет
Ну разбивка sql на вызовы функций даёт больше ощущения, что ты программист)))
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Alexey Zinoviev
Есть люди с sql дислексией
Я таким был пока не поработал с датасетами. Внезапно объектный groupBy мне вправил мозг — я понял логику всего остального SQL :)
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Alexey Zinoviev
Ну разбивка sql на вызовы функций даёт больше ощущения, что ты программист)))
лайк :)
источник

D

Dima Kubitskiy in Moscow Spark
Паша Финкельштейн
С моей точки зрения непонятно зачем писать на детефреймах потому что есть же SQL для которого тоже есть автодополнение хотя бы табличек внутри запроса и при этом его знают типа все и грамматика у него суперпредсказуемая и можно делать интересные штуки типа
FROM A a JOIN B b ON b.id=a.user_id JOIN C c ON a.id=c.some_id AND b.id=c.author_id.
В спарковой грамматике это не очень тривиально пишется, а на SQL это хоть дерево напишет
сикуль -> ошибки в рантайме отлавливаешь (может быть),
датасет -> ошибки выводит при компиляции
вполне себе аргумент)
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Dima Kubitskiy
сикуль -> ошибки в рантайме отлавливаешь (может быть),
датасет -> ошибки выводит при компиляции
вполне себе аргумент)
Я писал про датафреймы. Про датасеты мне как раз всё понятно
источник

N

Nikolay in Moscow Spark
в большинстве случаев все ошибки sql отловятся при первом вызове. так же, как и при работе с данными
источник

D

Dima Kubitskiy in Moscow Spark
датафрейм=датасет(без типов)
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Dima Kubitskiy
датафрейм=датасет(без типов)
Главная разница как раз в том, что в нём при компиляции ничего важного не отваливается
источник

ПФ

Паша Финкельштейн... in Moscow Spark
а в датасете ты "1" - 1 никак не сделаешь
источник

N

Nikolay in Moscow Spark
это не совсем случай питона с его динамической типизацией и обилием кусков кода, в которых не отловить ошибку до их выполнения. запустил sql. и все ошибки в этом sql сразу найдутся
источник

ПФ

Паша Финкельштейн... in Moscow Spark
давайте договоримся что я называю датасетом нормальный типизированный не Row датасет :)
источник

AZ

Alexey Zinoviev in Moscow Spark
На самом деле в датабрикс очень сильно пытаются стать распределенным пандасом - ясно какие это плюсы для них несёт, но при этом основное кейсы пандас а-ля разведочный анализ не особо важны для того, что крутится в спарк + средний пандасовец действительно не знает sql и скорее всего не работал на языках с конпеляцией
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Alexey Zinoviev
На самом деле в датабрикс очень сильно пытаются стать распределенным пандасом - ясно какие это плюсы для них несёт, но при этом основное кейсы пандас а-ля разведочный анализ не особо важны для того, что крутится в спарк + средний пандасовец действительно не знает sql и скорее всего не работал на языках с конпеляцией
В целом я понимаю, но мне кажется что тут спарку конкурировать бесполезно 😞
источник

AZ

Alexey Zinoviev in Moscow Spark
Поэтому все туториалы, оптимизации, API льются в датафреймы (но это ни разу не значит, что это единственный верный путь) и как следствие народ рожает свой прод копипастой именно с датафреймов
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Потому что питон правда для такого очень удобен
источник

AZ

Alexey Zinoviev in Moscow Spark
Он не конкурирует, он хочет дополнить
источник

AZ

Alexey Zinoviev in Moscow Spark
Типо пишешь на pandas и в какой то момент просто выполняешься распределенно, не меняя кодовые практики
источник

AZ

Alexey Zinoviev in Moscow Spark
Но это не значит, что мы на статических языках должны себя ограничивать
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Alexey Zinoviev
Типо пишешь на pandas и в какой то момент просто выполняешься распределенно, не меняя кодовые практики
Мне казалось что для этого есть Dask?
источник

AZ

Alexey Zinoviev in Moscow Spark
Паша Финкельштейн
Мне казалось что для этого есть Dask?
А есть батин кластер на спарке и заказчик, хотящий трениться на parquet/orc
источник