【问题标题】:pyspark: rearrange nested array of struct sequencepyspark:重新排列结构序列的嵌套数组
【发布时间】:2022-02-10 03:49:08
【问题描述】:

我有一个这种格式的数据框,我想重新排列 item 列中的字段。

root
 |-- order: string (nullable = true)
 |-- dt: struct (nullable = true)
 |-- item: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- a: long (nullable = true)
 |    |    |-- b: string (nullable = true)
 |    |    |-- c: long (nullable = true)

所以这是我正在寻找的所需格式。

root
 |-- order: string (nullable = true)
 |-- dt: struct (nullable = true)
 |-- item: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- a: long (nullable = true)
 |    |    |-- c: string (nullable = true)
 |    |    |-- b: long (nullable = true)

【问题讨论】:

    标签: dataframe apache-spark pyspark apache-spark-sql schema


    【解决方案1】:

    你可以使用transform函数:

    from pyspark.sql import functions as F
    
    result = df.withColumn(
        "item",
        F.expr("transform(item, x -> struct(x.a as a, x.c as c, x.b as b))")
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 2021-12-08
      • 2019-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多