[英]Complicated inner join in Spark or Pyspark
我有表X key(a,b)
和表Y
用key(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.