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

erw*_*man 8 hadoop-partitioning apache-spark

我正在使用 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
...
Run Code Online (Sandbox Code Playgroud)

但是,输出 CSV 文件仅包含 的值bar,而不包含foo。我知道 的值foo已在目录名称中捕获foo=N,但是否也可以foo在 CSV 文件中包含 的值?

hi-*_*zir 8

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

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