有效地在Pyspark中加入多个数据框

时间:2018-09-17 15:26:10

标签: join pyspark

我在S3存储桶中有多个具有相同架构的数据框,需要将它们合并到一个final_df

模式就像:

id    | dates      |   feature1_value
0       2017-01-01      5.0

我需要将这些df加入这样的最终数据帧中:

id    | dates      |   feature1_value   |feature2_value|.....

这是我正在运行的代码

for feature in features:
    df = spark.read.csv("s3://mybucket/{}/*.csv".format(column),header=True)
    df.createOrReplaceTempView('new_data')
    final_df.createOrReplaceTempView("final_df")
    final_df = spark.sql(
        'select f.*, n.{}_value '
        'from final_df f '
        'inner join new_data n on n.id = f.id and n.dates = f.dates '.format(
        column))

但是这些连接非常昂贵,当我想将final_df写入s3时,它总是失败。

final_df.write.parquet("s3:my_bucket_1",mode="overwrite")

如何才能更有效地连接和写入s3?

当我检查集群用户界面时,集群的百分比和队列的百分比为7.2%,这在写入S3时非常低。

0 个答案:

没有答案