我有一个数据集
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一次?
暂无答案!
目前还没有任何答案,快来回答吧!