【发布时间】:2021-01-29 04:05:20
【问题描述】:
我正在尝试使用 sql-spark-connecter 使用 Azure Databricks 从 Azure SQL 提取数据。我已在集群上安装了 Maven 库,并已在 Databricks 上成功运行此脚本以从示例数据库中提取:
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 方法中添加一个过滤器,以减少我需要拉取的行数以节省处理功率和数据帧大小。理想情况下,我还想只提取特定的列,但优先级是行。
查看可用的Pyspark documentation,似乎没有通用的 .filter 属性,并且 sql spark 连接器文档也没有指定有助于过滤请求的可用 .option 键。我假设没有减少数据拉取的好方法,但如果有,请纠正我。
我可能会在查询后立即从数据框中删除不必要的列和行,以帮助降低成本和性能。如果有其他想法需要考虑,请告诉我!
【问题讨论】:
标签: sql-server azure apache-spark pyspark azure-databricks