在Spark中使用不同标头在DataFrame中导入多个csv
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Spark中使用不同标头在DataFrame中导入多个csv相关的知识,希望对你有一定的参考价值。
我有多个Csv,每个人都像这样的变量:
cloudiness.csv
+---+---+----------+-------------------+
|_c0| ID|cloudiness| datetime|
+---+---+----------+-------------------+
| 0| 3| 1.0|2013-11-08 00:00:00|
| 1|303| 2.0|2013-11-08 00:00:00|
| 2|306| 3.0|2013-11-08 00:00:00|
temperature.csv
+---+---+-----------+-------------------+
|_c0| ID|temperature| datetime|
+---+---+-----------+-------------------+
| 0| 3| 3.0|2013-11-08 00:00:00|
| 1|303| 4.0|2013-11-08 00:00:00|
| 2|306| 5.0|2013-11-08 00:00:00|
..等等,(这个文件的7点8分)。
我必须使用Spark(R,Python或Scala)将它们合并到一个只有DataFrame中,如下所示:
+---+---+-----------+----------+-------------------+
|_c0| ID|temperature|cloudiness| datetime|
+---+---+-----------+----------+-------------------+
| 0| 3| 3.0| 1.0|2013-11-08 00:00:00|
| 1|303| 4.0| 2.0|2013-11-08 00:00:00|
| 2|306| 5.0| 3.0|2013-11-08 00:00:00|
我试过spark.read但是花了太多时间,文件每个都是3 GB。这样做的最佳方法是什么?
答案
标准方法是连接数据帧。
当您使用下面的代码片段阅读csv文件时
val read_csv1 = sc.textFile(“HDFS读取文件的路径”)
将创建RDD,您可以加入其他CSV。如果你提到性能问题的手段。让我给你另一种方式。
以上是关于在Spark中使用不同标头在DataFrame中导入多个csv的主要内容,如果未能解决你的问题,请参考以下文章
Python Spark-如何将空 DataFrame 输出到 csv 文件(仅输出标头)?
仅从 Spark Scala DataFrame 写入标头 CSV 记录