Size: a a a

2021 July 16

CO

Chern Oleksander in Moscow Spark
Есть две таблицы календарь
И продажи.
Пользователь же может не каждый день делать продажу.
По этому делаю кросс select * from ( (select disitnict user_id from payments) cross join calendar )
источник

ЕГ

Евгений Глотов... in Moscow Spark
Так вроде каждый день и не надо, надо одну строку для каждого юзера в день, когда были продажи
источник

ЕГ

Евгений Глотов... in Moscow Spark
Просто select user, payment_date, sum(day_amount) over partition by user order by payment_date from (select sum(amount) as day_amount from payments group by user, payment_date)
источник

SS

Sergey Sheremeta in Moscow Spark
в Oracle для подобных задач я использовал partitioned outer join, в SparkSQL, насколько я знаю, такого нет... только через cross-join для получения всех нужных комбинаций ключей и последующий outer-join с фактически имеющимися данными

ну и поверх полученного датасета применить оконную функцию расчета куммулятивной суммы
источник

CO

Chern Oleksander in Moscow Spark
Ноуп, нужно на каждый день, например юзер сделал только 2го числа продажу на 15, а сегодня 5е
Тогда
2 15
3 15
4 15
5 15
источник

ЕГ

Евгений Глотов... in Moscow Spark
А, тогда как раз поможет инкрементально брать каждый день, считать предыдущий + сегодняшний и сохранять
источник

CO

Chern Oleksander in Moscow Spark
А есть какие-то примеры инкрементального действия ?
Буду благодарен
источник

ЕГ

Евгений Глотов... in Moscow Spark
Ну, посчитай табличку на первый день
Посмотри, как нужно написать запрос, чтобы получить результат за второй день
источник

ЕГ

Евгений Глотов... in Moscow Spark
Дальше по индукции)
источник

М

Михаил in Moscow Spark
Народ, привет. Есть проблема, spark драйвер отправляет heartbeat в RM, что бы не умирал SparkContext, если по какой то сетевой проблеме один бит не доходит, то yarn гасит драйвер.  Можно как то задавай count failed для подобных проблем? Кто то сталкивался?
источник

ME

Mikhail Epikhin in Moscow Spark
там вроде только yarn.am.liveness-monitor.expiry-interval-ms для этого есть
источник

М

Михаил in Moscow Spark
да, но они не помогают обходить ошибку дисконекта
источник

CO

Chern Oleksander in Moscow Spark
всем привет, а вот такой вопрос

пытаюсь опять же в AWS glue конвертнуть timestamp в date
но конвертит почему-то не правильно
например есть дата 2019-07-04 20:49:10.000000, а результат 2019-07-05

.withColumn('dates', F.to_date(F.from_utc_timestamp(F.to_utc_timestamp(df.update_time,"EEST"),"EEST")))

Почему так? (( Спасибо
источник

NN

No Name in Moscow Spark
А если убрать вот всю эту ерунду с utc, а оставить просто to_date?
источник

CO

Chern Oleksander in Moscow Spark
Тоже самое получается, типа конвертит в +3 часа, внутри дата EEST если что
источник

CO

Chern Oleksander in Moscow Spark
ща еще хочу
spark.conf.set('spark.sql.session.timeZone', 'EEST')
может быть в этом проблема
источник
2021 July 20

МК

Михаил Королев... in Moscow Spark
всем привет, дурацкий вопрос, но вдруг кто сталкивался: spark structured streaming, читаю кафку, если не ставлю в опциях ничего про офсет - ключ читается нормально, если ставлю .option("startingOffsets","earliest") - ключ null. Читаю одним и тем же кодом, вся разница - в этой опции. Не нулевой ключ выглядит нормально (байты 31 31 - две единички...). Спарк 2.4, кафка 2.6
источник

МК

Михаил Королев... in Moscow Spark
смотрел в логах - десериализатор от этой опции не меняется (class org.apache.kafka.common.serialization.ByteArrayDeserializer), что не так...
источник

МК

Михаил Королев... in Moscow Spark
а, еще веселее - новые сообщения читаются нормально, старые (которые были в топике до запуска запроса в спарк) - с нулевыми ключами все...
источник
2021 July 21

CO

Chern Oleksander in Moscow Spark
Привет, а не подскажите почему гвоорит инвалид? PySpark
filter_final_fd = final_ddf.where((F.col("date_rep") = F.lit('2021-01-04')) | (F.col("date_rep") = F.lit('2021-01-02')))
источник