мой сценарий
- Gets data from a stream and call a UDF which return a json string. one of the attribute in JSON string is UniqueId, which UDF is generating as guid.newGuid() (C#).
- DataFrame output of UDF is written to multiple streams/sinks based on some fiter.
проблема:
- каждый приемник получает новое значение для уникального идентификатора, созданного UDF. Как я могу поддерживать один и тот же уникальный идентификатор для всех приемников.
- Если каждый приемник получает разные значения для UniqueId, означает ли это, что мой UDF вызывается несколько раз для каждого приемника?
- Если UDF вызывается дважды, как можно вызвать его один раз, а затем просто записать одни и те же данные в разные приемники?
inData = spark.readstream().format("eventhub")
udfdata = indata.select(from_json(myudf("column"), schema)).as("result").select(result.*)
filter1 = udfdata.filter("column =='filter1'")
filter 2 = udfdata.filter("column =='filter2'")
# write filter1 to two differnt sinks
filter1.writestream().format(delta).start(table1)
filter1.writestream().format(eventhub).start()
# write filter2 to two differnt sinks
filter2.writestream().format(delta).start(table2)
filter2.writestream().format(eventhub).start()