比较 Databricks 和 MS SQL 服务器中 table 中的数据

Compare data in a table in Databricks and MS SQL Server

我必须将数据块中的 table 与 SQL 服务器中的相同 table 进行比较,并仅将缺失的记录填充到数据块中。有人可以帮助我如何使用数据块连接到 SQL 服务器,如何以及在何处编写将填充丢失数据的查询。

谢谢!

您可以仅使用 Spark 支持的标准 JDBC 接口连接到 SQL 服务器 - databricks 运行时应包含 SQL 服务器数据和您的数据之间的 drivers for MS SQL out of box. When data read you can do anti join数据块。像这样(在 Python 中):

jdbc_url = f"jdbc:sqlserver://{hostname}:{port};database={database}"
sql_data = spark.read.jdbc(jdbc_url, "your_table", connectionProperties)
your_data = spark.read.format("delta").load("path")
# get difference between datasets
diff = sql_data.join(your_data, <join-condition>, "leftanti")
# work with diff

要从 SQL 服务器读取,请按照有关如何 optimize read performance 的说明进行操作,但这可能取决于您的实际架构。