如何解决比较 Databricks 和 MS SQL Server 中表中的数据
我必须将 databricks 中的表与 sql Server 中的同一个表进行比较,并仅将丢失的记录填充到 databricks 中。有人可以帮助我如何使用 databricks 连接到 sql Server,如何以及在何处编写将填充缺失数据的查询。
谢谢!
解决方法
您可以仅使用 Spark 支持的标准 JDBC 接口连接到 SQL 服务器 - 数据块运行时应包含 drivers for MS SQL out of box。读取数据时,您可以在 SQL 服务器数据和 Databricks 中的数据之间执行 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 Server 读取,请按照有关如何optimize read performance的说明进行操作,但这可能取决于您的实际架构。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。