利用PySpark统计相邻字符串对出现的次数

如有文件demo.txt数据如下:

A;B;C;D;B;D;C
B;D;A;E;D;C
A;B

代码如下:

from pyspark import SparkContext


sc = SparkContext()

rdd1 = sc.textFile('demo.txt')
rdd2 = rdd1.map(lambda x: x.split(';'))


def ne(x):
    return list(zip(*[x[i:] for i in range(2)]))


rdd2.flatMap(ne).map(lambda x: (x[0] + ' , ' + x[1], 1)).reduceByKey(lambda a, b: a + b).collect()

输出结果如下:

[('A , B', 2),
 ('B , C', 1),
 ('D , B', 1),
 ('B , D', 2),
 ('D , A', 1),
 ('C , D', 1),
 ('D , C', 2),
 ('A , E', 1),
 ('E , D', 1)]

 

posted @ 2021-04-12 18:23  jingsupo  阅读(29)  评论(0编辑  收藏
我要啦免费统计