У меня есть потоковый источник Kafka с JSON, например, {"type":"abc","1":"23.2"}
.
Запрос дает следующее исключение:
org.apache.spark.sql.catalyst.parser.ParseException: extraneous
input '.1' expecting {<EOF>, .......}
== SQL ==
person.1
Какой правильный синтаксис для доступа "person.1"
?
Я даже изменил DoubleType
на StringType
, но это тоже не сработало. Пример отлично работает, просто сохранив person.type
и удалив person.1
в selectExpr
:
val personJsonDf = inputDf.selectExpr("CAST(value AS STRING)")
val struct = new StructType()
.add("type", DataTypes.StringType)
.add("1", DataTypes.DoubleType)
val personNestedDf = personJsonDf
.select(from_json($"value", struct).as("person"))
val personFlattenedDf = personNestedDf
.selectExpr("person.type", "person.1")
val consoleOutput = personNestedDf.writeStream
.outputMode("update")
.format("console")
.start()