在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 记录

如何在 Pandas Dataframe 中导入多个 excel 文件

如何将标头添加到 PySpark DataFrame?

Spark Dataframe 为浮点数提供不同级别的精度

如何在 Apache Spark 中为具有不同结构的两个 DataFrame 实现 NOT IN