Я использую Spark для записи данных в разделы. Учитывая набор данных с двумя столбцами (foo, bar), если я сделаю df.write.mode("overwrite").format("csv").partitionBy("foo").save("/tmp/output"), я получу результат

/tmp/output/foo=1/X.csv
/tmp/output/foo=2/Y.csv
...

Однако выходные файлы CSV содержат только значение для bar, а не foo. Я знаю, что значение foo уже записано в имя каталога foo=N, но можно ли также включить значение foo в файл CSV?

9
erwaman 10 Янв 2018 в 17:54

1 ответ

Лучший ответ

Только если вы сделаете копию под другим именем:

(df
    .withColumn("foo_", col("foo"))
    .write.mode("overwrite")
    .format("csv").partitionBy("foo_").save("/tmp/output"))
7
Alper t. Turker 10 Янв 2018 в 15:01