You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySpark运行时报错TypeError: 不支持'int'和'str'类型相加怎么解决?

错误根因

报错的核心原因是语法逻辑错误:你将x.split(',')[2]转为整数后,直接用+运算符和字符串","做运算,Python不支持整数与字符串直接相加,因此触发类型报错。

同时你现有逻辑存在功能偏差:你要实现按年龄计算平均好友数,需要提前将RDD处理为**(年龄, 好友数)**的键值对格式,而不是将两个字段拼接为字符串,拼接后的字符串RDD也无法支撑后续的mapValues、reduceByKey算子运算。


修正方案

将构造RDD的代码调整为返回二元组格式即可,不需要做字符串拼接:

# 调整map返回值为(年龄:int, 好友数:int)的键值对二元组
rdd = lines.map(lambda x: (int(x.split(',')[2]), int(x.split(',')[3])))

# 后续统计逻辑无需修改即可正常运行
totalsByAge = rdd.mapValues(lambda x: (x, 1)).reduceByKey(lambda x, y: (x[0] + y[0], x[1] + y[1]))
averagesByAge = totalsByAge.mapValues(lambda x: x[0] / x[1])
results = averagesByAge.collect()
for result in results:
    print(result)

内容的提问来源于stack exchange,提问作者radhika sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 19:24:01