小编use*_*554的帖子

结构化流写入多个流

我的场景

  1. 从流中获取数据并调用返回 json 字符串的 UDF。JSON 字符串中的属性之一是 UniqueId,UDF 生成为 guid.newGuid() (C#)。
    1. UDF 的 DataFrame 输出基于某些 fiter 写入多个流/接收器。

问题:

  1. 每个接收器都会获取由 UDF 生成的 UniqueId 的新值。我如何为所有接收器维护相同的 UniqueId。
  2. 如果每个接收器获得不同的 UniqueId 值,这是否意味着每个接收器都会多次调用我的 UDF?
  3. 如果 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()
Run Code Online (Sandbox Code Playgroud)

apache-spark spark-structured-streaming azure-databricks

4
推荐指数
1
解决办法
5663
查看次数

如何删除非托管 Delta Lake 表

我正在尝试删除使用 writestream 创建的 Delta Lake 表。我尝试删除表但失败

#table created as
df.writestream().outputmode("append").format("delta").start("/mnt/mytable")

#attempt to drop table
spark.sql("drop table '/mnt/mytable'")
Run Code Online (Sandbox Code Playgroud)

databricks azure-databricks delta-lake

4
推荐指数
1
解决办法
6339
查看次数