将字符串转换为json文件上的数值-PySpark操作

将字符串转换为json文件上的数值-PySpark操作,json,sum,pyspark,Json,Sum,Pyspark,我正在学习PySpark,在将一列“字符串”转换为数字时遇到了一个问题。我四处寻找,但找不到解决办法。请帮忙 我能够执行以下两个命令: people=sqlContext.read.json(“C:\wdchentxt\People2.json”) people.select('name',people.age+1).show() 但我得到了以下错误,因为“年龄”不是一个数字列。 如何将年龄列从字符串聚合到数字 people.groupBy('gender').sum('age').show()

我正在学习PySpark,在将一列“字符串”转换为数字时遇到了一个问题。我四处寻找,但找不到解决办法。请帮忙

我能够执行以下两个命令:

people=sqlContext.read.json(“C:\wdchentxt\People2.json”) people.select('name',people.age+1).show()

但我得到了以下错误,因为“年龄”不是一个数字列。 如何将年龄列从字符串聚合到数字

people.groupBy('gender').sum('age').show()


我特别困惑,因为年龄+1的人是成功的。谢谢

您有JSON文件的示例吗

此文档可能会有所帮助,因为它与您的代码类似:

您可以在pyspark数据帧中使用cast函数

df.select('gender',df.age.cast('int').alias('age')).groupBy('gender').sum('age').show()

希望对您有所帮助。

谢谢!这比我想象的要复杂得多。你知道为什么下面这行正确吗?people.select('name',people.age+1).show()。如果我可以在people.age中添加1,那么它必须是一个数字,对吗?如果对您有用,请接受答案。这是我的json文件(仅第一行-为了节省空间){“name”:“Burks”,“gender”:“male”,“deptid”:“100”,“age”:“26”,“salary”:“2700”}谢谢!