我一直在尝试根据过滤器RDD值获得两个不同的输出。
我有一个text2 RDD,其值类似于
text=["values are defined in config file"]
text2=sc.parallelize(text)
text2.flatMap(lambda x: x.split(" ")).filter(lambda y:'key' in y).map(lambda x: ('key',0) if len(x)==0 else ('key',1)).collect()
如果text2中有“键”,那么我应该得到
('key',1)
否则我应该得到
('key',0)
'key'在文本中不存在,但是我仍然得到一个空值[]。 有人可以指出我在这里所缺少的东西吗。
谢谢!
答案 0 :(得分:0)
滥用in
。您可以尝试下面的代码
text2 \
.flatMap(lambda x: x.split(" ")) \
.map(lambda y: ('key', int(y==key))).collect()
但是我想您不想对您正在寻找的地图进行平面映射
text2 \
.map(lambda x: x.split(" ")) \
.map(lambda y: ('key', int(key in y))).collect()