pyspark: TypeError: 'float' 对象不可迭代

海伦Z

我正在处理一个火花代码,我总是遇到错误:

TypeError: 'float' object is not iterable

reduceByKey()功能线上有人能帮我吗?这是错误的堆栈跟踪:

d[k] = comb(d[k], v) if k in d else creator(v)
  File "/home/hw/SC/SC_spark.py", line 535, in <lambda>
TypeError: 'float' object is not iterable

这是代码:

def field_valid(m):
    dis=m[1]
    TxP=m[2]
    ef=m[3]
    pl=m[4]
    if TxP != 'NaN' and disl != 'NaN' and ef !='NaN' and pl != 'NaN':
        return True
    else:
        return False

def parse_input(d):
    #d=data.split(',')

    s_name='S'+d[6] # serving cell name

    if d[2] =='NaN' or d[2] == '':
        ef='NaN'
    else:
        ef=float(d[2].strip().rstrip())

    if d[7] =='NaN' or d[7] == '' or d[7] == '0':
        TxP='NaN'
    else:
        TxP=float(d[7].strip().rstrip())

    if d[9] =='NaN' or d[9] == '':
        dis='NaN'
    else:
        dis=float(d[9].strip().rstrip())

    if d[10] =='NaN' or d[10] == '':
        pl='NaN'
    else:
        pl=float(d[10].strip().rstrip())

return s_name,dis, TxP, ef, pl


sc=SparkContext(appName="SC_spark")
lines=sc.textFile(ip_file)
lines=lines.map(lambda m: (m.split(",")))
lines=lines.filter(lambda m: (m[6] != 'cell_name'))
my_rdd=lines.map(parse_input).filter(lambda m: (field_valid(m)==True))
my_rdd=my_rdd.map(lambda x: (x[0],(x[1],x[2])))                                                                                                                                          
my_rdd=my_rdd.reduceByKey(lambda x,y:(max(x[0],y[0]),sum(x[1],y[1])))  #this line got error

以下是一些示例数据:


Class,PB,EF,RP,RQ,ID,cell_name,TxP,BW,DIS,PL,geom
NaN,10,5110,-78.0,-7.0,134381669,S417|134381669|5110,62.78151250383644,10,2578.5795095469166,113.0,NaN
NaN,10,5110,-71.0,-6.599999904632568,134381669,S417|134381669|5110,62.78151250383644,10,2689.630258510342,106.0,NaN
NaN,10,5110,-77.0,-7.300000190734863,134381669,S417|134381669|5110,62.78151250383644,10,2907.8184899249713,112.0,19.299999999999983
NaN,10,5110,-91.0,-11.0,134381669,S417|134381669|5110,62.78151250383644,10,2779.96762695867,126.0,5.799999999999997
NaN,10,5110,-90.0,-12.69999980926514,134381669,S417|134381669|5110,62.78151250383644,10,2749.8351648579583,125.0,9.599999999999994
NaN,10,5110,-95.0,-13.80000019073486,134381669,S417|134381669|5110,62.78151250383644,10,2942.7938902934643,130.0,-2.4000000000000057
NaN,10,5110,-70.0,-7.099999904632568,134381669,S417|134381669|5110,62.78151250383644,10,3151.930706017461,105.0,22.69999999999999
一个板球运动员

预期结果是值的总和和最大值

在这种情况下,您正在寻找x[1] + y[1],而不是使用内置sum()函数。

my_rdd.reduceByKey( lambda x,y: ( max(x[0],y[0]), x[1] + y[1] ) )

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

pyspark - TypeError:“价格”对象不可迭代

来自分类Dev

TypeError:'numpy.float64'对象不可迭代Keras

来自分类Dev

TypeError:我的代码中的Float对象不可迭代

来自分类Dev

TypeError:使用sum时,'float'对象不可迭代

来自分类Dev

TypeError:“ float”类型的对象没有len()&TypeError:“ float”对象不可迭代

来自分类Dev

TypeError对象不可迭代

来自分类Dev

TypeError:“ float”类型的参数不可迭代

来自分类Dev

min()和max()给出错误:TypeError:“ float”对象不可迭代

来自分类Dev

Python3 - TypeError:'numpy.float64' 对象不可迭代

来自分类Dev

TypeError: 'numpy.float64' 对象在使用 write.() 时不可迭代

来自分类Dev

pyspark:“ PipelinedRDD”对象不可迭代

来自分类Dev

TypeError:“ float”对象不可下标

来自分类Dev

TypeError:'float'对象不可下标--Python

来自分类Dev

TypeError:“ Alien”对象不可迭代

来自分类Dev

#字符串方法TypeError:pyspark中的列不可迭代

来自分类Dev

TypeError:列不可迭代-在pyspark中使用map()和explode()

来自分类Dev

错误:“ float”对象不可迭代-python

来自分类Dev

DRF TypeError“类型”对象不可迭代

来自分类Dev

制表包TypeError:“浮动对象不可迭代”

来自分类Dev

TypeError:'int'对象不可迭代-Python

来自分类Dev

Pyautogui TypeError:'NoneType'对象不可迭代

来自分类Dev

Python TypeError:“ TagList”对象不可迭代

来自分类Dev

奇怪的TypeError:“ NoneType”对象不可迭代

来自分类Dev

classmethod属性TypeError:“属性”对象不可迭代

来自分类Dev

TypeError:“ NoneType”对象不可迭代(硒2.49)

来自分类Dev

Tensorflow-TypeError:'int'对象不可迭代

来自分类Dev

/ register /'AnonymousUser'对象的TypeError不可迭代

来自分类Dev

Django'登出'TypeError:'AnonymousUser'对象不可迭代

来自分类Dev

TypeError:“ numpy.bool_”对象不可迭代

Related 相关文章

  1. 1

    pyspark - TypeError:“价格”对象不可迭代

  2. 2

    TypeError:'numpy.float64'对象不可迭代Keras

  3. 3

    TypeError:我的代码中的Float对象不可迭代

  4. 4

    TypeError:使用sum时,'float'对象不可迭代

  5. 5

    TypeError:“ float”类型的对象没有len()&TypeError:“ float”对象不可迭代

  6. 6

    TypeError对象不可迭代

  7. 7

    TypeError:“ float”类型的参数不可迭代

  8. 8

    min()和max()给出错误:TypeError:“ float”对象不可迭代

  9. 9

    Python3 - TypeError:'numpy.float64' 对象不可迭代

  10. 10

    TypeError: 'numpy.float64' 对象在使用 write.() 时不可迭代

  11. 11

    pyspark:“ PipelinedRDD”对象不可迭代

  12. 12

    TypeError:“ float”对象不可下标

  13. 13

    TypeError:'float'对象不可下标--Python

  14. 14

    TypeError:“ Alien”对象不可迭代

  15. 15

    #字符串方法TypeError:pyspark中的列不可迭代

  16. 16

    TypeError:列不可迭代-在pyspark中使用map()和explode()

  17. 17

    错误:“ float”对象不可迭代-python

  18. 18

    DRF TypeError“类型”对象不可迭代

  19. 19

    制表包TypeError:“浮动对象不可迭代”

  20. 20

    TypeError:'int'对象不可迭代-Python

  21. 21

    Pyautogui TypeError:'NoneType'对象不可迭代

  22. 22

    Python TypeError:“ TagList”对象不可迭代

  23. 23

    奇怪的TypeError:“ NoneType”对象不可迭代

  24. 24

    classmethod属性TypeError:“属性”对象不可迭代

  25. 25

    TypeError:“ NoneType”对象不可迭代(硒2.49)

  26. 26

    Tensorflow-TypeError:'int'对象不可迭代

  27. 27

    / register /'AnonymousUser'对象的TypeError不可迭代

  28. 28

    Django'登出'TypeError:'AnonymousUser'对象不可迭代

  29. 29

    TypeError:“ numpy.bool_”对象不可迭代

热门标签

归档