【发布时间】:2019-05-01 19:26:51
【问题描述】:
我对 Pyspark 比较陌生。我有一个由元组列表组成的 RDD。我想在 RDD 上调用一个函数,它与 python set() 函数等效,可以消除任何重复项。
我也试图在分布式系统上从理论上理解这一点。如果 RDD 分布在多个 worker 中,set 函数如何工作?如果它使用的是简单 RDD 而不是 Pair RDD,它如何确定什么是重复的?
给定一个唯一元组的输入 RDD,其中元组中的元素必须是唯一的,即顺序无关紧要。
输入:
myTup = [('cat', 'dog'), , ('mouse', 'duck'), ('duck', 'cat'), ('cat', 'dog'), ('dog', 'cat'), ('dog', 'horse'), ('cat', 'duck'), ('dog', 'horse'), ('dog', 'horse')]
我想要类似的东西:
tuple_fix = list(set([tuple(sorted(t)) for t in my_Tup ]))
并得到输出:
[('cat', 'dog'), ('mouse', 'duck'), ('duck', 'cat'), ('dog', 'horse')]
感谢您抽出宝贵时间!
【问题讨论】:
标签: apache-spark pyspark rdd