Size: a a a

2019 August 06

ПФ

Паша Финкельштейн in Data Engineers
Но если бы мне надо было сделать то что я хочу на хаскеле — мне пришлось бы прокинуть себе весь сиквенс объектов и найти в них то что мне надо
источник

AZ

Anton Zadorozhniy in Data Engineers
Я обычно пишу сначала корректную реализацию в функциональном стиле, а потом чиню производительность
источник

AZ

Anton Zadorozhniy in Data Engineers
Как писал некто Кнут - преждевременная оптимизация это корень всех зол
источник

K

KrivdaTheTriewe in Data Engineers
если мне хочется какой-то сложной агрегации я всё таки конверчу в aggregateByKey
источник

K

KrivdaTheTriewe in Data Engineers
и уже в рамках ключа делаю всё что нужно
источник

K

KrivdaTheTriewe in Data Engineers
а так можно и погенерировать окнонных функций
источник

GA

Gleb Abroskin in Data Engineers
извините, что прерываю дискуссию, но подскажите, пожалуйста, можно ли в спарке (а если нет, то где можно) сделать следующее: координатор принимает запросы батчами по ~100-200мс, в зависимости от содержимого запросов отправляет их на нужного(ых) executor, потом получает ответ и в зависимости от него делает еще что-то. У каждого executor'a свой стейт, который регулярно сохраняется на диск, чтобы, если что, потом подняться из него, если executor'ы будут из коробки реплицироваться -- вообще супер.

Только начинаю смотреть курсы/разбираться и вот столкнулся с таким кейсом, спасибо
источник

AZ

Anton Zadorozhniy in Data Engineers
Gleb Abroskin
извините, что прерываю дискуссию, но подскажите, пожалуйста, можно ли в спарке (а если нет, то где можно) сделать следующее: координатор принимает запросы батчами по ~100-200мс, в зависимости от содержимого запросов отправляет их на нужного(ых) executor, потом получает ответ и в зависимости от него делает еще что-то. У каждого executor'a свой стейт, который регулярно сохраняется на диск, чтобы, если что, потом подняться из него, если executor'ы будут из коробки реплицироваться -- вообще супер.

Только начинаю смотреть курсы/разбираться и вот столкнулся с таким кейсом, спасибо
нет, это вам нужно Akka смотреть
источник

GA

Gleb Abroskin in Data Engineers
Anton Zadorozhniy
нет, это вам нужно Akka смотреть
спасибо, посмотрю!
источник

AZ

Anton Zadorozhniy in Data Engineers
Стейт на диск это только если вам очень-очень такое нужно, наверное стоит попробовать сохранять в базу или сторадж какой
источник

AZ

Anton Zadorozhniy in Data Engineers
Персистент воркеры это антипаттерн
источник

GA

Gleb Abroskin in Data Engineers
Anton Zadorozhniy
Персистент воркеры это антипаттерн
понимаю, но там ооооочень медленно будет доставать из базы. Под диском имел в виду сторадж, да
источник

AZ

Anton Zadorozhniy in Data Engineers
А про Dataset API - иногда вот думаешь плохо-плохо, все придётся переписать чтобы быстро работало, а потом посмотришь в optimizedPlan - а оно и предикат спушило, и кэш подобрало, и в принципе жить можно, зато код загляденье
источник

AZ

Anton Zadorozhniy in Data Engineers
Gleb Abroskin
понимаю, но там ооооочень медленно будет доставать из базы. Под диском имел в виду сторадж, да
Базы разные бывают, если например не весь стейт сохранять и читать - то может и пошустрее хранения объектов целиком выйти
источник

GA

Gleb Abroskin in Data Engineers
Anton Zadorozhniy
Базы разные бывают, если например не весь стейт сохранять и читать - то может и пошустрее хранения объектов целиком выйти
проблема в том, что нам нужен именно весь стейт (~1-6GB). А что значит “не весь стейт”, как это может работать?
источник

K

KrivdaTheTriewe in Data Engineers
Anton Zadorozhniy
А про Dataset API - иногда вот думаешь плохо-плохо, все придётся переписать чтобы быстро работало, а потом посмотришь в optimizedPlan - а оно и предикат спушило, и кэш подобрало, и в принципе жить можно, зато код загляденье
это его плюс)
источник

K

KrivdaTheTriewe in Data Engineers
Gleb Abroskin
проблема в том, что нам нужен именно весь стейт (~1-6GB). А что значит “не весь стейт”, как это может работать?
у флинка что-то было для стейта
источник

GA

Gleb Abroskin in Data Engineers
KrivdaTheTriewe
у флинка что-то было для стейта
гляну, спасибо!
источник

AZ

Anton Zadorozhniy in Data Engineers
Gleb Abroskin
проблема в том, что нам нужен именно весь стейт (~1-6GB). А что значит “не весь стейт”, как это может работать?
Ну у вас стейт как-то внутри структурирован? Какая-то hashmap где что-то хранится, иногда обновляется - храните построчно в базе, обновляйте построчно, да при холодной записи базе придётся вытащить все, но вы же не каждую минуту холодного воркера выдаете?
источник

GP

Grigory Pomadchin in Data Engineers
Gleb Abroskin
извините, что прерываю дискуссию, но подскажите, пожалуйста, можно ли в спарке (а если нет, то где можно) сделать следующее: координатор принимает запросы батчами по ~100-200мс, в зависимости от содержимого запросов отправляет их на нужного(ых) executor, потом получает ответ и в зависимости от него делает еще что-то. У каждого executor'a свой стейт, который регулярно сохраняется на диск, чтобы, если что, потом подняться из него, если executor'ы будут из коробки реплицироваться -- вообще супер.

Только начинаю смотреть курсы/разбираться и вот столкнулся с таким кейсом, спасибо
можно насамом деле и спарк; если не будет агрегаций то есть континус стриминг; можно попробовать
источник