PySpark中如何将带逗号的字符串浮点数转为Float类型?
解决PySpark中带逗号小数点的字符串转float问题
原因很明确:你的cost列数值用逗号作为小数点分隔符,而Spark默认只识别.作为小数点,直接cast无法解析这种格式,所以返回null。
解决方案是先把逗号替换成点,再转换为float类型:
- 导入所需函数
from pyspark.sql.functions import regexp_replace
- 替换分隔符并转换类型
df = df.withColumn('cost', regexp_replace(df.cost, ',', '.').cast('float'))
执行后查看结果:
df.show()
输出:
+----+-----+ |cost|label| +----+-----+ |31.2| foo| |33.1| bar| +----+-----+
内容的提问来源于stack exchange,提问作者Fluxy
相关产品推荐
相关产品推荐

