【发布时间】:2017-12-06 06:50:09
【问题描述】:
仍然是 Scala 和 Spark 的初学者,我想我只是在这里无脑。我有两个 RDD,其中一种是:-
((String, String), Int) = ((" v67430612_serv78i"," fb_201906266952256"),1)
其他类型:-
(String, String, String) = (r316079113_serv60i,fb_100007609418328,-795000)
可以看出,两个RDD的前两列格式相同。基本上它们是ID,一个是'tid',另一个是'uid'。
问题是这样的:
有没有一种方法可以比较两个 RDD,使得 tid 和 uid 在两者中都匹配,并且相同匹配 id 的所有数据都显示在一行中而没有任何重复?
例如:如果我得到两个 RDD 之间的 tid 和 uid 匹配
((String, String), Int) = ((" v67430612_serv78i"," fb_201906266952256"),1)
(String, String, String) = (" v67430612_serv78i"," fb_201906266952256",-795000)
那么输出是:-
((" v67430612_serv78i"," fb_201906266952256",-795000),1)
两个 RDD 中的 ID 没有任何固定的顺序。它们是随机的,即相同的 uid 和 tid 序列号在两个 RDD 中可能不对应。
另外,如果第一个 RDD 类型保持不变但第二个 RDD 更改为类型,解决方案将如何变化:-
((String, String, String), Int) = ((daily_reward_android_5.76,fb_193055751144610,81000),1)
我必须在不使用 Spark SQL 的情况下执行此操作。
【问题讨论】:
标签: scala apache-spark string-matching