ASH*_*ASH 5 sql-server scala dataframe python-3.x databricks
我们刚刚从 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)
Run Code Online (Sandbox Code Playgroud)
这已记录在此处。
https://learn.microsoft.com/en-us/azure/sql-database/sql-database-spark-connector
我正在寻找一个等效的 Python 脚本来完成相同的工作。我搜索了同样的内容,但没有找到任何东西。这里有人有可以完成这项工作的东西吗?谢谢。
请尝试参考PySpark官方文档JDBC To Other Databases通过MS SQL Server的jdbc驱动程序直接将PySpark dataframe写入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()
Run Code Online (Sandbox Code Playgroud)
或者
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()
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你。
| 归档时间: |
|
| 查看次数: |
10720 次 |
| 最近记录: |