【发布时间】:2022-12-17 15:07:09
【问题描述】:
我有一个 JSON 字符串数组,我需要将其解析并转换为一个结构。
反式Df模式:
root
|-- logs: array (nullable = true)
| |-- element: string (containsNull = true)
这是我试过的代码
val logsSchema = new ArrayType(spark.read.json(transDf.select("logs").as[String]).schema, true)
transDf = transDf.withColumn("logs", from_json(col("logs"), logsSchema))
但上面的东西只适用于字符串 - >结构但不适用于数组结构。
如何在不知道 JSON 架构的情况下将 JSON 字符串的数组转换为 Array<Struct>。
【问题讨论】:
-
你能打印几行你的
transDf数据框吗?这将有助于帮助你:) -
不知道在数据量很大的问题中加个动态链接可不可以。所以,这里是没有表格边框的 transDf.select("logs").show(3, false) appp.me/aMhbvo 希望,这会有所帮助
-
我想你在数组中有 n json 表示。数组中的元素个数是固定的吗?
-
不,这不是固定的
标签: scala apache-spark