当前位置: 首页 > 知识库问答 >
问题:

在PySpark中连接分区内的数据帧

韦俊英
2023-03-14

我有两个具有大量(几百万到几千万)行的数据帧。我想为他们牵线搭桥。

在我目前使用的BI系统中,您可以通过首先对特定键进行分区,然后在该键上进行连接来快速完成此操作。

这是我在Spark中需要遵循的模式吗,或者这并不重要?乍一看,在分区之间转移数据似乎浪费了很多时间,因为没有正确地进行预分区。

如果有必要,我该怎么做?

共有1个答案

狄玉书
2023-03-14

如果有必要,我该怎么做?

如何定义数据帧的分区?

然而,它只有在两个条件下才有意义:

    < li >同一应用程序中有多个联接。分区本身是混乱的,所以如果它是一个单一的连接,就没有附加值。 < li >这是一个长期存在的应用程序,其中将重用混洗的数据。Spark不能利用以外部格式存储的数据的分区。
 类似资料:
  • 我有一个pyspark数据帧(df1 ),它由10K行组成,数据帧看起来像- 另一个pyspark数据帧(df2)由100k记录组成,看起来像- 我想使用pyspark内连接,最终的数据帧看起来像- df2中mobile_no的长度是12,但df1中是10。我可以加入它,但这是昂贵的操作。使用pyspark有帮助吗?

  • 假设我有两个数据帧,具有不同级别的信息,如下所示: 我想加入df1和df2,并将“值”信息传递给df2:一天中的每一小时都将获得“日”值。 预期产出:

  • 我在pyspark有两个数据框。如下所示,df1保存来自传感器的整个long_lat。第二个数据帧df2是第一个数据帧的子集,其中lat-long值被向上舍入到2位小数,然后删除重复项以保留唯一的lat_long数据点。 DF1: df2: 因此,df2 的行数比第一个少得多。在 df2 中,我应用了一个 udf 来计算状态名称。 现在我想在 df1 中填充状态名称。由于 df2 的 lat_lo

  • 问题内容: 我正在尝试从Amazon s3读取JSON文件以创建spark上下文并使用它来处理数据。 Spark基本上位于docker容器中。因此,将文件放在docker路径中也是PITA。因此将其推送到S3。 以下代码说明了其余内容。 我收到以下错误- 我已经清楚地提供了aswSecretAccessKey和awsAccessId。怎么了 问题答案: 我已经解决了添加到spark-submit命

  • 我正在尝试从Amazon s3读取一个JSON文件,以创建一个火花上下文并使用它来处理数据。 Spark基本上在docker容器中。所以将文件放入docker路径也是PITA。因此将其推送到S3。 下面的代码解释了其余的内容。 我得到以下错误- 我已经清楚地提供了aswSecret AccessKey和awsAccessId。出了什么问题?

  • 我有两个大的数据帧。每一行都有lat/lon数据。我的目标是在两个数据帧之间进行连接,并找到距离内的所有点,例如100m。 我想在geohash7上对df1和df2进行分区,然后只在分区内连接。我希望避免分区之间的连接以减少计算。 所以基本上加入geohash7,然后确保点之间的距离小于100。问题是,Spark实际上会交叉连接所有数据。如何使其只执行分区间连接而不执行分区内连接?