这是我上一个问题的延续。
我想找到' e'的索引。以下RDD使用pyspark:
['a,b,c,d,e,f']
我正在使用方法:
rdd.zipWithIndex().lookup('e')
但我得= []
因为Rdd的格式如下: [ [' A,B,C,d,E,F']
我试过
rdd.flatMap(lambda x: x)
所以我使用查找来获取索引,但我仍然得到[]
请帮帮我。如何将Rdd作为:
['a','b','c','d','e','f']
这样我就可以做这个方法
rdd.zipWithIndex().lookup('e')
答案 0 :(得分:1)
问题是您使用整个字符串作为array
['a,b,c,d,e,f']
所以,这里a,b,c,d,e,f
被视为一个字符串。 您需要将它们分隔为您拥有的RDD的单独行。您只需使用flatMap
将字符串分隔为单独的 RDD 行,然后使用zipWithIndex()
和{{1 }}
lookUp()