在Spark中具有不同标头的DataFrame中导入多个csv

时间:2018-10-02 09:55:45

标签: python r csv apache-spark dataframe

我有多个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 o 8 o)。

我必须像这样使用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。最好的方法是什么?

1 个答案:

答案 0 :(得分:0)

标准方法是连接数据帧。

使用以下代码段读取csv文件时

val read_csv1 = sc.textFile(“ HDFS读取文件的路径”)

RDD将被创建,并且您可以与其他CSV一起加入。如果提到性能问题的意思。让我给你另一种方式。