Я пытаюсь создать набор данных из json-строки в кадре данных в Databricks 3.5 (Spark 2.2.1).В блоке кода ниже «jsonSchema» представляет собой StructType с правильным макетом для строки json, которая находится в столбце «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 вернет фрейм данных, которым я мог бы манипулировать дальше.
Моя конечная цель - преобразовать строку json внутри столбца тела oldDF в набор данных.