我有这样的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)
答案 0 :(得分:1)
在此步骤suchRDD.flatMap(lambda k:k)
之后,您将获得:
[1,2,2,3]
不可能知道哪个数字来自哪个集合,所以你应该在flatMap之前区分元组。为此,您可以使用set(),Python中的内置函数来获取不同的项目。
rdd = sc.parallelize([(1,1,2),(2,2,3)])
rdd.map(set).flatMap(lambda x:x).collect()