在 Pyspark 中合并 DataFrame

Posted

技术标签:

【中文标题】在 Pyspark 中合并 DataFrame【英文标题】:Combine DataFrames in Pyspark 【发布时间】:2020-02-18 16:53:21 【问题描述】:

我有一个供应商给了我一个 S3 存储桶上的多个压缩数据文件,我需要一起阅读这些文件以使用 Pyspark 进行分析。如何修改 sc.textFile() 命令?

另外,如果我要加载 10 个文件,我该如何引用它们?还是它们都进入一个 RDD?

在更广泛的层面上,我将如何调整 AMAZON EMR 集群上的分区和内存?每个压缩文件大小为 3MB 或解压缩后为 1.3GB。 谢谢

【问题讨论】:

【参考方案1】:

您可以有一个脚本,它将所有解压缩文件移动到一个目录中,然后作为您的 spark 代码的一部分,您可以引用该目录

rdd = sc.textFile(("s3://path/to/data/")

正如您提到的,它是 1.3 GB 的数据,对于 spark 处理来说并不大,您可以让 spark 拥有所需的分区,但是您可以在创建 rdd 时定义它们。

对于 Amazon EMR,您可以根据需求类型旋转更小的节点 https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-supported-instance-types.html

根据处理类型(内存密集型/计算密集型),选择机器类型。

HTH

【讨论】:

以上是关于在 Pyspark 中合并 DataFrame的主要内容,如果未能解决你的问题,请参考以下文章

在 Pyspark 中合并 DataFrame

在 pyspark 中合并两个 RDD

如何在pyspark的循环中合并数据帧

在s3中使用pyspark合并多个小json文件[重复]

pyspark - 将两个数据帧与目标中的额外列合并

如何使用 Python / Pyspark 在 Databricks 笔记本中合并数据帧