【发布时间】:2018-10-23 09:22:01
【问题描述】:
我正在尝试从 Databricks 3.5 (Spark 2.2.1) 中的数据框中的 json 字符串创建数据集。在“jsonSchema”下面的代码块中,是一个 StructType,它具有正确布局的 json-string,它位于数据框的“body”列中。
val newDF = oldDF.select(from_json($"body".cast("string"), jsonSchema))
这将返回根对象所在的数据框
jsontostructs(CAST(body AS STRING)):struct
后跟架构中的字段(看起来正确)。当我在 newDF 上尝试另一个选择时
val transform = newDF.select($"propertyNameInTheParsedJsonObject")
抛出异常
org.apache.spark.sql.AnalysisException: cannot resolve '`columnName`' given
input columns: [jsontostructs(CAST(body AS STRING))];;
我显然错过了一些东西。我希望 from_json 会返回一个我可以进一步操作的数据框。
我的最终目标是将 oldDF 正文列中的 json 字符串转换为数据集。
【问题讨论】:
标签: scala apache-spark databricks