我正在尝试使用 apache spark (pyspark) 对值 (key, value) 进行分组。我设法通过键进行分组,但在内部我想对值进行分组,如下例所示。
我需要按 GYEAR 列按 cout() 分组。
%pyspark
rdd1 = sc.textFile("/datos/apat63_99.txt")
rdd2 = rdd1.map(lambda line : line.split(",") ).map(lambda l : (l[4],l[1],l[0]))
for line in rdd2.take(6):
print(line)
######################
rdd3 = rdd2.map(lambda line:(line[0],(line[1:]) ))
rddx = rdd2.groupByKey()
rddx.take(5)
我希望输出是:
在:
(u'"COUNTRY"', u'"GYEAR"', u'"PATENT"')
(u'"BE"', u'1963', u'3070801')
(u'"BE"', u'1964', u'3070811')
(u'"US"', u'1963', u'3070802')
(u'"US"', u'1963', u'3070803')
(u'"US"', u'1963', u'3070804')
(u'"US"', u'1963', u'3070805')
(u'"US"', u'1964', u'3070807')
出去:
(u'"BE"', [(u'1963', 1), (u'1964', 1)])
(u'"US"', [(u'1963', 4), (u'1964', 2)])