如何解决将 Spark 数据集与分区一起写入 Excel 文件
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 举报,一经查实,本站将立刻删除。