如何有效地遍历RDD或DataFrame?

时间:2020-10-08 18:06:51

标签: python apache-spark pyspark rdd

我有一个数据集

471,Brunt,52,273
472,Nog,27,154
473,Morn,35,38
474,Keiko,34,48 
475,Ben,52,446 

我想高效地对其进行迭代,以便可以取出多个 一次获取信息,并将其保存在名称或年龄等地方。

**def retrieveData(data):
array1 = []
splitData = data.split(",")
for newData in splitData:
    if newData[1] == "will":
        array1.append(newData[1])
        
return array1      
 lines = sc.textFile("/Users/adityaverma/Documents/sparkCourse/fakefriends.csv")
 lines.take()
 getNewData = lines.map(retrieveData)
 mydata = getNewData.map(lambda x : (x,1)).reduceByKey(lambda x,y:x+y)
 results = mydata.collect()
 
 This results shows an error "ile "<ipython-input-96-8b7508e2339e>", line 5, in retrieveData
  IndexError: string index out of range**

我的方法是将RDD传递给python函数(def extract(lines):)类似 然后使用if和else将值保存在不同的数组中,然后分配 在这种情况下,这些数组将再次变为RDD,而不必在同一RDD上再次使用过滤器

怎么可能?有没有一种方法可以有效地遍历RDD或数据帧一次 ?

0 个答案:

没有答案
相关问题