python—如何高效地迭代rdd或Dataframe?

kzmpq1sx  于 2021-05-24  发布在  Spark
关注(0)|答案(0)|浏览(256)

我有一个数据集

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或Dataframe一次?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题