//create RDD
val rdd = sc.makeRDD(List(("a", (1, "m")), ("b", (1, "m")),
("a", (1, "n")), ("b", (2, "n")), ("c", (1, "m")),
("c", (5, "m")), ("d", (1, "m")), ("d", (1, "n"))))
val groupRDD = rdd.groupByKey()
在groupByKey之后,我要过滤第二个不等于1的元素,并得到
第一个月
**groupByKey()**是必须的,可以帮助我,非常感谢。
add:但如果第二个元素类型是string,则过滤第二个元素所有元素都等于x
,如("a",("x","m")), ("a",("x","n")), ("b",("x","m")), ("b",("y","n")), ("c",("x","m")), ("c",("z","m")), ("d",("x","m")), ("d",("x","n"))
也得到同样的结果("b",("x","m")), ("b",("y","n")), ("c",("x","m")), ("c",("z","m"))
1条答案
按热度按时间2uluyalo1#
您可以:
我们首先通过
groupByKey
对键进行分组,然后通过对分组条目中的键求和来过滤filter
,并检查sum
是否与分组条目的大小相同。例如:最终结果:
祝你好运!
假设来自元组的
key
可以是任何字符串;假设rdd
是包含以下内容的数据:然后我们可以构造
uniqueCount
为:然后这个:
给出以下输出: