繁体   English   中英

Spark或Pyspark中的复杂内部联接

[英]Complicated inner join in Spark or Pyspark

我有表X key(a,b)和表Ykey(a) 我在Spark中搜索了多个API函数,但找不到仅可以通过key(a)将两个表连接起来的东西。

具有两个数据结构(将它们视为具有两个不同键的两个表)

X.take(1) -> made of key(a,b)

[((u'"1"', u'"B8"'), (u'"1"', u'"B8"', array([[  7.16677290e-01,   4.15236265e-01,   7.02316511e-02]])))]

Y.take(1) -> have key(a)

[(u'"5"', (u'"5"', array([[ 0.86596322,  0.29811589,  0.29083844,  0.51458565,  0.23767414]])))]

现在,我想要一个类似a -> [a,b,array_1,array_2]

Cogroup没有达到我的目的,因为它返回key(a,b)key(a)的笛卡尔积。

关于如何获取具有以下行的数据结构的任何建议或提示:

a -> [a,b,array_1,array_2]

您是否有理由在整个联接中都将键保持为(a,b) 似乎您可以稍微更改RDD的结构以使联接起作用。

只需将((a,b),[value])更改为(a,(b,[value])) ,然后与(a,[value]) 您将得到(a, Iterable((b,[value])), Iterable([value])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM