Spark 中 RDD 内部的不同列表,而不是整个 RDD

Distinct Lists inside of RDD in Spark, not the whole RDD

我有这样的RDD:[(1,1,2),(2,2,3)]

我想要:[1,2,2,3]

提示:中间步骤:(1,2),(2,3)

我的代码:

suchRDD.flatMap(lambda k:k).distinct()

.. 将产生:

[1,2,3]

这不是我想要的。 (请不要介意不同类型的牙套)

如何减少每个嵌套列表然后展平以获得想要的结果? (请不要列出理解示例,提醒:这是Spark)

完成这一步后suchRDD.flatMap(lambda k:k)你会得到:
[1,2,2,3]
不可能知道哪个数字来自哪个集合,所以你应该在 flatMap 之前区分元组。为此,您可以使用 Python 中的内置函数 set() 来获取不同的项目。

rdd = sc.parallelize([(1,1,2),(2,2,3)])
rdd.map(set).flatMap(lambda x:x).collect()