Spark:你能在输出文件中包含分区列吗?

Spark: can you include partition columns in output files?

我正在使用 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 中捕获,但是是否可以在 CSV 文件中也包含 foo 的值?

仅当您以不同名称制作副本时:

(df
    .withColumn("foo_", col("foo"))
    .write.mode("overwrite")
    .format("csv").partitionBy("foo_").save("/tmp/output"))