我有一个类似以下结构的数据集:
col_A col_B date
1 5 2021-04-14
2 7 2021-04-14
3 5 2021-04-14
4 9 2021-04-14
我正在尝试使用spark java中的以下代码将dataaset写入hdfs中的文件。
Dataset<Row> outputDataset; // This is a valid dataset and works flawlessly when written to csv
/*
some code which sets the outputDataset
* /
outputDataset
.repartition(1)
.write()
.partitionBy("date")
.format("com.crealytics.spark.excel")
.option("header", "true")
.save("/saveLoc/sales");
正常工况:
当我通过使用 .format("csv")
,上面的代码创建一个名为 date=2021-04-14
在小路上 /saveLoc/sales
那是传进来的 .save()
这和预期完全一样。结束文件的完整路径是 /saveLoc/sales/date=2021-04-14/someFileName.csv
. 此外,该列 date
已从文件中删除,因为它是在上分区的。
我需要做的是:
但是,当我使用 .format("com.crealytics.spark.excel")
,它只是创建一个名为 sales
在文件夹中 saveLoc
并且不会从结束文件中删除分区(日期)列。这是否意味着它不是在“日期”列上分区?创建的文件的完整路径为 /saveLoc/sales
. 请注意,它用sales文件覆盖文件夹“sales”。
使用的excel插件描述如下:https://github.com/crealytics/spark-excel
在excel中编写时如何使其成为分区?换句话说,我怎样才能使它的行为完全像csv的情况一样呢?
谢谢。
暂无答案!
目前还没有任何答案,快来回答吧!