Spark结构化流中JSON负载的自定义作业

时间:2019-04-13 08:26:12

标签: scala apache-spark apache-spark-sql spark-streaming spark-structured-streaming

我在事件中心具有低于有效负载的负载,能够使用结构化流将其扎根以触发。现在,我必须为每种传感器类型编写自定义作业。我如何检查流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"))

0 个答案:

没有答案