相关疑难解决方法(0)

PySpark DataFrame上的Sum运算在类型正常时给出TypeError

我在PySpark中有这样的DataFrame(这是take(3)的结果,数据帧非常大):

sc = SparkContext()
df = [Row(owner=u'u1', a_d=0.1), Row(owner=u'u2', a_d=0.0), Row(owner=u'u1', a_d=0.3)]
Run Code Online (Sandbox Code Playgroud)

同一所有者将拥有更多行.我需要做的是在分组之后将每个所有者的字段a_d的值相加为

b = df.groupBy('owner').agg(sum('a_d').alias('a_d_sum'))
Run Code Online (Sandbox Code Playgroud)

但这会引发错误

TypeError:+:'int'和'str'的不支持的操作数类型

但是,架构包含双精度值,而不是字符串(这来自printSchema()):

root
|-- owner: string (nullable = true)
|-- a_d: double (nullable = true)
Run Code Online (Sandbox Code Playgroud)

那么这里发生了什么?

python dataframe apache-spark pyspark

8
推荐指数
1
解决办法
1万
查看次数

标签 统计

apache-spark ×1

dataframe ×1

pyspark ×1

python ×1