栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在pyspark中更改数据框列名称?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在pyspark中更改数据框列名称?

有很多方法可以做到这一点:

  • 选项1.使用selectExpr。

    data = sqlContext.createDataframe([("Alberto", 2), ("Dakota", 2)],         ["Name", "askdaosdka"])

    data.show()
    data.printSchema()

    Output

    +-------+----------+

    | Name|askdaosdka|

    +-------+----------+

    |Alberto| 2|

    | Dakota| 2|

    +-------+----------+

    root

    |– Name: string (nullable = true)

    |– askdaosdka: long (nullable = true)

    df = data.selectExpr(“Name as name”, “askdaosdka as age”)
    df.show()
    df.printSchema()

    Output

    +-------+—+

    | name|age|

    +-------+—+

    |Alberto| 2|

    | Dakota| 2|

    +-------+—+

    root

    |– name: string (nullable = true)

    |– age: long (nullable = true)

  • 选项2。使用withColumnRenamed,请注意,此方法允许您“覆盖”同一列。对于Python3,请替换

    xrange
    range

    from functools import reduce

    oldColumns = data.schema.names
    newColumns = [“name”, “age”]

    df = reduce(lambda data, idx: data.withColumnRenamed(oldColumns[idx], newColumns[idx]), xrange(len(oldColumns)), data)
    df.printSchema()
    df.show()

  • 选项3.使用 别名,在Scala中,您还可以将as用作。

    from pyspark.sql.functions import col

    data = data.select(col(“Name”).alias(“name”), col(“askdaosdka”).alias(“age”))
    data.show()

    Output

    +-------+—+

    | name|age|

    +-------+—+

    |Alberto| 2|

    | Dakota| 2|

    +-------+—+

  • 选项4.使用sqlContext.sql,它使您可以对

    Dataframes
    注册为表的数据库使用SQL查询。

    sqlContext.registerDataframeAsTable(data, "myTable")

    df2 = sqlContext.sql(“SELECT Name AS name, askdaosdka as age from myTable”)

    df2.show()

    Output

    +-------+—+

    | name|age|

    +-------+—+

    |Alberto| 2|

    | Dakota| 2|

    +-------+—+



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/669776.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号