gpt4 book ai didi

java - 如何将仅包含标题(无行)的数据集写入 hdfs 位置(csv 格式),以便在下载时包含标题?

转载 作者:可可西里 更新时间:2023-11-01 14:51:28 25 4
gpt4 key购买 nike

我有一个仅包含标题(id、姓名、年龄)和 0 行的数据集。我想使用

将它作为 csv 文件写入 hdfs 位置
DataFrameWriter dataFrameWriter = dataset.write();
Map<String, String> csvOptions = new HashMap<>();
csvOptions.put("header", "true");
dataFrameWriter = dataFrameWriter.options(csvOptions);
dataFrameWriter.mode(SaveMode.Overwrite).csv(location);

在 hdfs 位置,文件是:

1. _SUCCESS
2. tempFile.csv

如果我转到那个位置并下载文件 (tempFile.csv),我会得到一个空的 csv 文件。尝试过使用标题 true 和 false。如何将 header 写为 csv 文件的内容?

最佳答案

好吧,这是一个解决方法。在 Scala 中,您可以这样做:

df.take(1).isEmpty match {

case true => sc.parallelize(Array(df.schema.map(_.name).mkString(",")))
.saveAsTextFile("temp")
case false => df.write.save("temp")

}

df.schema 将数据帧 df 的架构返回为 StructType

_.name 返回架构中每一列的名称。

mkString(",") 将名称的结果序列转换为逗号分隔的字符串

我猜 Java 也可以做类似的事情。

关于java - 如何将仅包含标题(无行)的数据集写入 hdfs 位置(csv 格式),以便在下载时包含标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45619265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com