gpt4 book ai didi

scala - 在 Spark 中分解结构列时出错

转载 作者:行者123 更新时间:2023-12-03 15:01:47 30 4
gpt4 key购买 nike

我有一个数据框,其架构如下所示:

event: struct (nullable = true)
| | event_category: string (nullable = true)
| | event_name: string (nullable = true)
| | properties: struct (nullable = true)
| | | ErrorCode: string (nullable = true)
| | | ErrorDescription: string (nullable = true)

我正在尝试引爆 struct栏目 properties使用以下代码:
df_json.withColumn("event_properties", explode($"event.properties"))

但它抛出以下异常:

cannot resolve 'explode(`event`.`properties`)' due to data type mismatch: 
input to function explode should be array or map type,
not StructType(StructField(IDFA,StringType,true),


怎么炸柱子 properties ?

最佳答案

您可以使用 explodearraymap列,因此您需要转换 properties structarray然后应用 explode功能如下

import org.apache.spark.sql.functions._
df_json.withColumn("event_properties", explode(array($"event.properties.*"))).show(false)

你应该有你想要的要求

关于scala - 在 Spark 中分解结构列时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48315442/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com