Sql server Databricks从Azure SQL触发条件拉取

Sql server Databricks从Azure SQL触发条件拉取,sql-server,azure,apache-spark,pyspark,azure-databricks,Sql Server,Azure,Apache Spark,Pyspark,Azure Databricks,我正在尝试使用Azure数据库从Azure SQL中提取数据。我已在集群上安装了Maven库,并已在DataRicks上成功运行此脚本,以从示例数据库中提取: server_name = "jdbc:sqlserver://(removed).database.windows.net" database_name = (removed) url = server_name + ";" + "databaseName=" + databa

我正在尝试使用Azure数据库从Azure SQL中提取数据。我已在集群上安装了Maven库,并已在DataRicks上成功运行此脚本,以从示例数据库中提取:

server_name = "jdbc:sqlserver://(removed).database.windows.net"
database_name = (removed)
url = server_name + ";" + "databaseName=" + database_name + ";"
table_name = "dbo.Test"
username = (removed)
password = (removed)


jdbcDF = spark.read \
        .format("com.microsoft.sqlserver.jdbc.spark") \
        .option("url", url) \
        .option("dbtable", table_name) \
        .option("user", username) \
        .option("password", password) \
        .load()

display(jdbcDF)
但是,我希望最终使用此连接器从一个5 mil+行的大表中提取数据,并希望在.read方法中添加一个过滤器,以减少需要提取的行数,从而节省处理能力和数据帧大小。理想情况下,我还希望只提取特定的列,但行是优先级

查看可用的,似乎没有通用的.filter属性,sql spark connector文档也没有指定有助于筛选请求的可用.option键。我假设没有减少数据拉取的好方法,但如果有,请纠正我


我可能会在查询后立即从数据帧中删除不必要的列和行,以帮助提高成本和性能。如果有其他的想法要考虑,请告诉我! 传递将要执行的包含筛选器的查询。例如

...
...
pushdown_query = "(select * from employees where emp_no < 10008) emp_alias"
df = spark.read.jdbc(url=jdbcUrl, table=pushdown_query, 
properties=connectionProperties)
display(df)
...

应该会有帮助。

谢谢,我来试试。想使用新的连接器,但它仍在积极开发中,哥们,它成功了!即使使用了新的连接器。使用:table_name=从dbo.Test中选择top5*,这很好。谢谢你,伙计!