无法将数据写入RDD

时间:2019-04-30 14:18:41

标签: python apache-spark pyspark rdd

我正在Windows上运行pyspark,并实现了以前在python中实现的算法

我已将列表转换为RDD,但收到错误

voxel =[[ ['0' for col in range(100)] for col in range(100)] for row in range(6)] 
delay = sc.parallelize(voxel,4)
locationforant=[[75,15],[100,50],[75,80],[25,80],[0,50],[25,15]]
for a in range(6):
    for x in range(100):
        for y in range(100):
            distance=((math.sqrt((x-locationforant[a][0])**2+(y-locationforant[a][1])**2))/100)*200
            delay[a][x][y] = round(distance)

TypeError                                 Traceback (most recent call last)
<ipython-input-9-b81a67e36764> in <module>()
     21             distance=((math.sqrt((x-locationforant[a][0])**2+(y-locationforant[a][1])**2))/100)*200
     22 #             breakpoint()
---> 23             delay[a][x][y] = round(distance)

TypeError: 'RDD' object does not support indexing

1 个答案:

答案 0 :(得分:0)

如错误所示,您不能在RDD上使用索引运算符(queryParametersAll)。您需要使用类似map之类的功能才能将函数应用于每一行。