Size: a a a

2021 July 05

GP

Grigory Pomadchin in Moscow Spark
на практике стараются не делать редьюсов между новыми датафреймами; но в этом случае наверное никак; или читать из таблицы другим способом - начальных данных то много не надо
источник

ИК

Иван Калининский... in Moscow Spark
Таки это будет новый df, я бы так и обозначил это использованием нового val

И думаю, мастерство for comprehensions тут пригодилось бы: создать нужные функции, которые возвращали бы Option[DataFrame] и:

for {df <- Some(dfRaw)
dfNew <- newDF(df)
dfChanged <- changeDF(df, dfNew)
} yield dfChanged

Воспринимайте как псевдокод, я же только в процедурном программировании понимаю, в функциональном ниоч))
источник

GP

Grigory Pomadchin in Moscow Spark
реф для этого
источник

GP

Grigory Pomadchin in Moscow Spark
for {
 dfRef <- Ref.of(spark.read)
 _ <- dfRef.update(_.withColumn())
 _ <- ….
}
источник

ИК

Иван Калининский... in Moscow Spark
вот вот, я бы тоже посмотрел, как делается, и пользовался у себя, иногда бывает правда много строк с последовательными трансформациями
источник

ИК

Иван Калининский... in Moscow Spark
спасибо!
источник

DZ

Dmitry Zuev in Moscow Spark
а ты хорош, несешь скалу в спарк
источник

KR

Kagermanov Ramazan in Moscow Spark
Начало у меня такое же, только не через фор компр, а через стримы, но суть одна
Но редьюсы внутри одного дф не получается делать
источник

GP

Grigory Pomadchin in Moscow Spark
если у тебя простое то реф: https://typelevel.org/cats-effect/docs/std/ref
если что посложнее то стейт: https://typelevel.org/cats/datatypes/state.html
источник

GP

Grigory Pomadchin in Moscow Spark
ну делай походу дела
источник

GP

Grigory Pomadchin in Moscow Spark
// глина какаято но что-то такое
for {
 dfRef <- Ref.of(spark.read)
 _ <- dfRef.update(_.withColumn())
 list <- dfRef.get.map(_.collect().toList) // вот он редьюс, хоть 100 раз сделай
 _ <- dfRef.update(_.withColumns(list:_*)))
}
источник

GP

Grigory Pomadchin in Moscow Spark
травишь меня
источник

GP

Grigory Pomadchin in Moscow Spark
ты лучше мне подскажи насчет https://t.me/moscowspark/17737
источник

GP

Grigory Pomadchin in Moscow Spark
эх почему анкодеры не тупклассы а непойми что
источник

KR

Kagermanov Ramazan in Moscow Spark
Спасибо, попробую
источник

DZ

Dmitry Zuev in Moscow Spark
я через frameless решил, не шмог на ванильных энкодерах
источник

GP

Grigory Pomadchin in Moscow Spark
ну фреймлейс да генерирует свои анкодеры просто
источник

GP

Grigory Pomadchin in Moscow Spark
можно конечно через фреймлес
источник

DZ

Dmitry Zuev in Moscow Spark
ето понятно
источник

DZ

Dmitry Zuev in Moscow Spark
но там приятный слой, который скалавей выводит тебе все
источник