我在事件中心具有低于有效负载的负载,能够使用结构化流将其扎根以触发。现在,我必须为每种传感器类型编写自定义作业。我如何检查流DF的列值并将其植根到其他函数?实际上,每种类型都有不同的参数集,我需要从SQL DB中获取自定义架构,我被困在这里。
{
"Sensor_Id": 1,
"Sensor_Type":"Type1",
"Parameter":
{
"Parameter1":12
"Parameter1":34
"Parameter1":56
}
}
在代码段下方提取有效负载。我能够读取除参数之外的内容,我正在考虑通过使用Sensor_Type查询来从SQL DB获取架构,并使用from_json来读取参数部分。然后写自定义作业。在Spark 2.4中有什么方法可以实现这一目标?
val eventhubs = spark.readStream
.format("eventhubs")
.options(eventHubsConf.toMap)
.load()
val jsonSchema = new StructType().add("Sensor_Id", StringType)
.add("Sensor_Type", StringType)
.add("Parameter", StringType)
val events = eventhubs.select(from_json($"body".cast("String"),jsonSchema).alias("sensorReading"))