首页 > 解决方案 > 在 JAVA 中的 apache spark 数据集中添加标头

问题描述

以下问题包含在 Scala 语言的数据框中添加标头的解决方案。我想在 Java 语言的数据集中添加标题。 将标题和列添加到数据框火花

我正在阅读一个不包含标题的文件:

Dataset<Row> ds= spark.read().format("csv").option("header", "false").load(filepath);

ds.show()打印:

+----------+----------------+----------+----+----+---------+----+
|       _c0|             _c1|       _c2| _c3| _c4|      _c5| _c6|
+----------+----------------+----------+----+----+---------+----+
|04/13/2019|             US1|04/13/2019|null|null|      abc|null|
|04/13/2019|             US1|04/13/2019|null|null|    qwert|null|
|04/13/2019|             US1|04/13/2019|null|null|     xyzz|null|
+----------+----------------+----------+----+----+---------+----+

所需的输出是我的标题:

+----------+----------------+----------+----+----+---------+----+
| orderDate|          symbol|  sellDate| prc|  id|  product| cod|
+----------+----------------+----------+----+----+---------+----+
|04/13/2019|             US1|04/13/2019|null|null|      abc|null|
|04/13/2019|             US1|04/13/2019|null|null|    qwert|null|
|04/13/2019|             US1|04/13/2019|null|null|     xyzz|null|
+----------+----------------+----------+----+----+---------+----+

任何人都可以在这方面提供帮助吗?

标签: javaapache-spark

解决方案


我找到了我的问题的答案。

toDF() 可用于添加标题,如下所示:

Dataset<Row> ds= spark.read().format("csv").option("header", "false").load(filepath).toDF("orderDate","symbol","selldate","prc","id","product","cod")

如果它们存在,这也可以用于重命名标题。像这样:

Dataset<Row> ds= spark.read().format("csv").option("header", "true").load(filepath).toDF("orderDate","symbol","selldate","prc","id","product","cod")

推荐阅读