java - 在 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|
+----------+----------------+----------+----+----+---------+----+
任何人都可以在这方面提供帮助吗?
解决方案
我找到了我的问题的答案。
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")
推荐阅读
- linux - Perl 中的这个命令有什么作用?
- c# - C# 7.3 引用返回与 pinvoke
- xcode - 如何从构建目标中删除无关的部署目标设置
- angular - 如何在angular4中使用每个
- python - 如何在 Google Analytics API DimensionFilter 中有多个表达式?
- typescript - 在 Ramda 的管道函数上扩展数组给出类型错误“预期 1-6 但得到 0 或更多”
- python - Python for i in range(2,2): print(i) i 变量包含什么,它不包含值 2?
- azure-machine-learning-studio - 使用 ML Studio API 开发 CD/CI 的最佳实践是什么?
- java - 在 javafx 程序上创建可执行 .jar 时出错
- r - psych 包中 scoreItems 函数中的错误:未找到列