从Databricks连接到sqls的Python代码

2024-05-14 03:21:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从Databricks执行python代码,它主要使用JDBC建立从python到sqlserver的连接。在

我使用了'jaydebeapi'python库,当我运行代码时,它会给出错误消息“jaydebeapi throws AttributeError:”_jpype.PyJPField'对象没有属性'getStaticAttribute'”

我在互联网上搜索,发现jaydebeapi中使用的Jpype库是个问题,我将其降级到0.6.3版本。在

但我还是犯了同样的错误。谁能给我解释一下如何做这个改变并运行在数据库里吗。在

或者有没有其他的图书馆我可以使用。在


Tags: 对象代码消息属性错误互联网jpypeattributeerror
2条回答

为什么不直接按照下面databricks的官方文档安装Spark Connector的Microsoft JDBC Driver for SQL Server,并参考使用JDBC connect SQL Server的Python示例代码。在

  1. SQL Databases using the Apache Spark Connector
  2. SQL Databases using JDBC及其{a3},其jdbc url为MS-sqlserver

如果您使用的是Azure,那么Azure数据块有相同的文档,如下所示。在

  1. SQL Databases using the Apache Spark Connector用于Azure数据块
  2. SQL Databases using JDBC用于Azure数据块

enter image description here

这是JayDeBeApi的已知问题,您可以在GitHub上查看该问题。在

由于0.6.3中的错误,私有变量作为接口的一部分被公开。另外,0.6.3有一个默认的类定制器,如果方法与javabean模式匹配,它会自动创建一个属性来获取和设置。此属性自定义项在许多公共java.lang语言类已加载,并且不可追溯,因此只有在初始值设定项之后发生的用户加载类才具有自定义项。私有变量错误将屏蔽属性自定义程序,因为属性自定义程序不会重写字段。一些库在不知不觉中访问私有变量,假设它们使用的是属性定制器。 定制程序是不必要的,并导致新程序员经常出错。在0.7中,错误行为已被删除,有问题的属性自定义程序在默认情况下已被禁用。在

向模块中添加行以启用旧的属性行为。但这将无法重新启用以前对私有变量的错误访问。因此,利用先前绕过java的getter/setter行为的代码将需要使用反射API。在

要启用属性自定义程序,请使用

try:
   import jpype.beans
except ImportError:
   pass

希望这有帮助。在

相关问题 更多 >