Size: a a a

2021 September 29

KR

Kagermanov Ramazan in Moscow Spark
Вроде как должно быть больше партиций, чем количество ядер
Это надо при записи в таблицу делать репартишион?
источник
2021 September 30

Н

Никита in Moscow Spark
Подскажите пожалуйста, как можно в PySpark на весь датафрейм применить схему?
У меня есть DataFrame и схема в JSON с комментариями и типами данных, хочу схему применить к df.
источник

MK

Mikhail Kuznetsov in Moscow Spark
Что значит применить? Можно прочитать со схемой.
источник

Н

Никита in Moscow Spark
У меня есть уже готовый рассчитанный dataframe, в нем могут быть идентификаторы в string, даты в string, я хочу одним разом все привести к конкретным типам данных, а так же добавить комментарии, чтобы потом в Hive отображались.
Хочу сделать типа df.cast(schema)
источник

MK

Mikhail Kuznetsov in Moscow Spark
List((colName, colType)).foldLeft(df) и вперед
источник

MK

Mikhail Kuznetsov in Moscow Spark
Сори - не увидел про PySpark. Выше - скала.
источник

Н

Никита in Moscow Spark
ну мне не только типы данных, но еще метадату нужно закинуть
источник

ЕГ

Евгений Глотов... in Moscow Spark
Если схему сконвертируешь в StructType, то вроде можно сделать df.transform(schema)
источник

ЕГ

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

SI

Sergey Ivanychev in Moscow Spark
источник

SI

Sergey Ivanychev in Moscow Spark
Там похожая проблема была
источник

ПФ

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

SI

Sergey Ivanychev in Moscow Spark
проблема решалась и так и так — но принципильно мне нужно было померджить схему или скастить датафрейм к произвольной схеме
источник

SI

Sergey Ivanychev in Moscow Spark
В итоге я решил проблему так (знаю, что выглядит плохо)


df.write.parquet(Path)

df = spark.read.schema(new_schema).parquet(Path)
источник

Н

Никита in Moscow Spark
ну ты читаешь пишешь, я хочу уже перелопаченный df привести к типам
источник

SI

Sergey Ivanychev in Moscow Spark
I know your pain bro, но в моем случае нужно было скастить тип партицированной таблицы, и я воспользовался механизмом мерджа схемы в паркете
источник

SI

Sergey Ivanychev in Moscow Spark
способа скастить схему датафрейма кроме указанного выше я не нашел
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Кажется это просто дифф схем с добавлением/удалением колонок
источник

MK

Mikhail Kuznetsov in Moscow Spark
+1
источник

SI

Sergey Ivanychev in Moscow Spark
схема может отличаться внутренними полями, и даже типом в массивах и мапах
источник