【问题标题】:Convert string to numerical - PySpark operation on a json file将字符串转换为数字 - 对 json 文件的 PySpark 操作
【发布时间】:2017-01-14 03:40:51
【问题描述】:

我在将“字符串”列转换为数字时遇到了问题。

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

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

但我收到以下错误,因为“年龄”是“不是数字列”。 如何将年龄列从字符串收敛到数值?

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

我特别困惑,因为people.age+1 成功了。

【问题讨论】:

    标签: json sum pyspark


    【解决方案1】:

    您可以在 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,那么它一定是一个数字,对吧?
    猜你喜欢
    • 2018-09-15
    • 2021-04-02
    • 1970-01-01
    • 2016-08-28
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 2019-08-27
    相关资源
    最近更新 更多