Spark python如何使用特殊标记组RDD项目?

时间:2016-07-12 03:26:37

标签: python dictionary apache-spark filter rdd

我有一个巨大的文件(a.txt)如下所示,文件中有一个特殊标记将数据分成组

a1
a2
$$$$$$$$
a1
c1
b1
c2
$$$$$$$$
d1
d2
$$$$$$$$
...

我想使用如下的python代码:

line = sc.textFile("a.txt")
line1 = line.filter() or line.filter.map()...
...

将组项划分为多个组,如下所示: (a1,a2),(a1,c1,b1,c2),(d1,d2)....但是无法弄清楚怎么做,有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

import itertools
df = pd.read_clipboard(header=None)
mn = df[0].tolist()
def isplit(iterable,splitters):
    return [list(g) for k,g in itertools.groupby(iterable,lambda x:x in splitters) if not k]
isplit(mn, ('$$$$$$$$',))
Out[84]: [['a1', 'a2'], ['a1', 'c1', 'b1', 'c2'], ['d1', 'd2']]