问题描述
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 中使用以下代码将数据集写入 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");
正常工作案例:
当我通过 use .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
的普通文件,并且不会从最终文件中删除 partitioned(date) 列。这是否意味着它没有在“日期”列上进行分区?创建的文件的完整路径是 /saveLoc/sales
。请注意,它用 file sales 覆盖了 folder “sales”。
此处描述了使用的 Excel 插件:https://github.com/crealytics/spark-excel
在excel中编写时如何使其分区?换句话说,我怎样才能让它的行为与在 csv 的情况下完全一样?
使用的版本:
spark-excel: com.crealytics.spark-excel_2.11
scala: org.apache.spark.spark-core_2.11
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)