如何使用带有 Databricks 的 Apache Spark 从 SQL Table 流式传输数据

How to stream data from SQL Table with Apache Spark with Databricks

我正在尝试使用以下内容从 sql table 流式传输:

my_sales =  spark.read.jdbc(jdbcUrl, dbo.table)

static = spark.read.format("csv").load(my_sales)
dataSchema = static.schema

我正在尝试使用以下内容从 table 中读取数据:

rawdf = (spark.readStream 
      .format("csv") \
      .option("maxFilesPerTrigger", 1) \
      .schema(dataSchema) \
      .csv(dataPath)
           )

我正在使用以下方法将数据写入以下位置

saveloc = '/mnt/raw/streaminglocation/'


streamingQuery = (
  rawdf
  .writeStream
  .format("csv")
  .outputMode("append")
  .option("checkpointLocation", f"{saveloc}/_checkpoints")
  .option("mergeSchema", "true")
  .start(saveloc)
)

然而这失败了。

是否可以从 SQL table 进行流式传输?

这是不可能的。 JDBC Spark 结构化流不支持源。

也不相信前期编码。

将 CDC 与 Kafka 一起使用,或者将 CDC 与 KAFKA 或 Debezium 一起使用物化可更新视图。