Spark:你能在输出文件中包含分区列吗?
Posted
技术标签:
【中文标题】Spark:你能在输出文件中包含分区列吗?【英文标题】:Spark: can you include partition columns in output files? 【发布时间】:2018-01-10 14:54:39 【问题描述】:我正在使用 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
的值?
【问题讨论】:
【参考方案1】:仅当您使用不同的名称制作副本时:
(df
.withColumn("foo_", col("foo"))
.write.mode("overwrite")
.format("csv").partitionBy("foo_").save("/tmp/output"))
【讨论】:
以上是关于Spark:你能在输出文件中包含分区列吗?的主要内容,如果未能解决你的问题,请参考以下文章
在 SBT 生成的胖 JAR 中包含 Spark 包 JAR 文件
Python 如果文件a中包含文件b,则将文件b的记录打印出来输出到c文件里