我在Databricks的Python环境中工作。我认为在SQLServer中,应该有几种方法可以将数据帧复制到表中。下面是我正在测试的两个代码示例
# Saving data to a JDBC source
jdbcDF.write \
.format("jdbc") \
.option("url", "jdbc:postgresql:dbserver") \
.option("dbtable", "schema.tablename") \
.option("user", "username") \
.option("password", "password") \
.save()
jdbcDF2.write \
.jdbc("jdbc:postgresql:dbserver", "schema.tablename",
properties={"user": "username", "password": "password"})
在这两种情况下,我在第一行得到一个错误,它是这样写的:
'DataFrame' object has no attribute 'write'
我正在阅读这里的文件。 https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html
我有一个数据帧设置的方式,我需要它(源代码)。我在SQLServer中有一个表,其中包含所有匹配的字段名和varchar数据类型(目标)。我只需要从源头复制到目的地。我该怎么做?蒂亚
根据您的错误信息,我认为示例代码中的} ,可能只是^{}
jdbcDF
对象不应该是^{所以你得到的错误是
'DataFrame' object has no attribute 'write'
。如果我的判断是正确的,您需要通过下面的代码将pandas数据帧转换为PySpark数据帧来修复它然后将其写入SQL Server
同时,如果您的目标是SQL Server,那么代码中的
jdbc
信息是针对postgresql
,而不是针对SQL Server的所以您需要先安装mssqlserver的jdbc驱动程序,如下图所示
图1.在
Libraries
选项卡的Install New
对话框的Maven
选项卡中单击Search Packages
链接。图2.切换到
Maven central
以搜索com.microsoft.sqlserver
jdbc。然后,要像下面这样更改mssqlserver的jdbc url,您可以参考官方文档^{}
否则,您也可以通过带有mssqlserver连接的函数^{} 将数据帧直接写入sqlserver表
相关问题 更多 >
编程相关推荐