首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pyspark单个RDD到多个RDD的密钥来自RDD

Pyspark单个RDD到多个RDD的密钥来自RDD
EN

Stack Overflow用户
提问于 2017-03-06 19:37:40
回答 1查看 329关注 0票数 1

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

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

代码语言:javascript
复制
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 as:

代码语言:javascript
复制
U-Key  ||  V1  ||  V2  ||  V3  ||
-----------------------------------
1001_01  ||  12  ||  41   ||  21  ||

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

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

RDD_1002_03 as:

代码语言:javascript
复制
U-Key  ||  V1  ||  V2  ||  V3  ||
-----------------------------------

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

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

RDD_1004_01 as:

代码语言:javascript
复制
U-Key  ||  V1  ||  V2  ||  V3  ||
-----------------------------------

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

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

从1RDD (Test_RDD)到3RDD (RDD_1001_01,RDD_1002_03,RDD_1004_01),新RDD的名称应该类似于RDD_(来自Test_RDD的唯一列名)。在Pyspark中有可用于此场景的函数吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-06 21:11:22

正如@user6910411已经提到的,使用单个函数调用不可能做到这一点。

尽管你回答了,但这篇文章确实为你的问题提供了大量的洞察力:答案的第一句话已经说明

不可能从单个转换中产生多个RDD*。如果您想拆分RDD,则必须为每个拆分条件应用一个过滤器。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42624650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档