gpt4 book ai didi

python - Pyspark 通过 RDD 中的键从单个 RDD 到多个 RDD

转载 作者:太空宇宙 更新时间:2023-11-03 15:34:37 26 4
gpt4 key购买 nike

我是 Pyspark 新手,我使用的是 Spark 2.0.2。

我有一个名为 Test_RDD 的 RDD,其结构如下:

U-Key  ||  V1  ||  V2  ||  V3  ||
-----------------------------------

1001_01 || 12 || 41 || 21 ||

1001_01 || 36 || 43 || 63 ||

1001_01 || 60 || 45 || 10 ||

1002_03 || 84 || 57 || 14 ||

1002_03 || 18 || 49 || 18 ||

1004_01 || 12 || 41 || 22 ||

1004_01 || 16 || 43 || 26 ||

例如,我需要根据 U-Key 列上可用的唯一值创建新的 RDD

RDD_1001_01 为:

U-Key  ||  V1  ||  V2  ||  V3  ||
-----------------------------------
1001_01 || 12 || 41 || 21 ||

1001_01 || 36 || 43 || 63 ||

1001_01 || 60 || 45 || 10 ||

RDD_1002_03 为:

U-Key  ||  V1  ||  V2  ||  V3  ||
-----------------------------------

1002_03 || 84 || 57 || 14 ||

1002_03 || 18 || 49 || 18 ||

RDD_1004_01 为:

U-Key  ||  V1  ||  V2  ||  V3  ||
-----------------------------------

1004_01 || 12 || 41 || 22 ||

1004_01 || 16 || 43 || 26 ||

从 1 个 RDD (Test_RDD) 到 3 个 RDD (RDD_1001_01、RDD_1002_03、RDD_1004_01),新 RDD 的名称应该类似于 RDD_(Test_RDD 中的唯一列名称)。 Pyspark中有没有针对这种场景的功能?

最佳答案

正如 @user6910411 已经提到的,不可能通过单个函数调用来完成此操作。

尽管您的回答,该帖子实际上确实提供了有关您的问题的大量见解:答案的第一句话已经说明了

It is not possible to yield multiple RDDs from a single transformation*. If you want to split a RDD you have to apply a filter for each split condition.

除此之外,理论上您可以通过拆分每个单独的索引来实现这一点 - 而不是您想要对可能较大的 RDD 执行的操作。相反,一个简单的 groupByKey 可以实现与您的请求类似的功能,但在同一个 RDD 中。根据您的进一步处理,应该提到您 should avoid groupByKey for reduce operations ,由于其过多的随机操作。

关于python - Pyspark 通过 RDD 中的键从单个 RDD 到多个 RDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42624650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com