[英]Working with Python in Azure Databricks to Write DF to SQL Server
我们刚刚从 Scala 切换到 Python。 我有一个需要推送到 SQL Server 的数据框。 我之前多次使用下面的 Scala 代码执行此操作。
var bulkCopyMetadata = new BulkCopyMetadata
bulkCopyMetadata.addColumnMetadata(1, "Title", java.sql.Types.NVARCHAR, 128, 0)
bulkCopyMetadata.addColumnMetadata(2, "FirstName", java.sql.Types.NVARCHAR, 50, 0)
bulkCopyMetadata.addColumnMetadata(3, "LastName", java.sql.Types.NVARCHAR, 50, 0)
val bulkCopyConfig = Config(Map(
"url" -> "mysqlserver.database.windows.net",
"databaseName" -> "MyDatabase",
"user" -> "username",
"password" -> "*********",
"dbTable" -> "dbo.Clients",
"bulkCopyBatchSize" -> "2500",
"bulkCopyTableLock" -> "true",
"bulkCopyTimeout" -> "600"
))
df.bulkCopyToSqlDB(bulkCopyConfig, bulkCopyMetadata)
这是记录在这里。
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-spark-connector
我正在寻找一个等效的 Python 脚本来完成同样的工作。 我搜索了相同的内容,但没有找到任何内容。 这里有人可以胜任这项工作吗? 谢谢。
请尝试参考 PySpark 官方文档JDBC To Other Databases
通过 MS SQL Server 的 jdbc 驱动程序直接将 PySpark 数据帧写入 SQL Server。
这是示例代码。
spark_jdbcDF.write
.format("jdbc")
.option("url", "jdbc:sqlserver://yourserver.database.windows.net:1433")
.option("dbtable", "<your table name>")
.option("user", "username")
.option("password", "password")
.save()
或者
jdbcUrl = "jdbc:mysql://{0}:{1}/{2}".format(jdbcHostname, jdbcPort, jdbcDatabase)
connectionProperties = {
"user" : jdbcUsername,
"password" : jdbcPassword,
"driver" : "com.mysql.jdbc.Driver"
}
spark_jdbcDF.write \
.jdbc(url=jdbcUrl, table="<your table anem>",
properties=connectionProperties ).save()
希望能帮助到你。
这是将 Spark 数据帧写入 SQL Server 数据库的完整 PySpark 代码,包括在何处输入数据库名称和架构名称:
df.write \
.format("jdbc")\
.option("url", "jdbc:sqlserver://<servername>:1433;databaseName=<databasename>")\
.option("dbtable", "[<optional_schema_name>].<table_name>")\
.option("user", "<user_name>")\
.option("password", "<password>")\
.save()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.