我试图通过PySpark连接teradata服务器。在
我的CLI代码如下所示
from pyspark.sql import SparkSession
spark=SparkSession.builder
.appName("Teradata connect")
.getOrCreate()
df = sqlContext.read
.format("jdbc")
.options(url="jdbc:teradata://xy/",
driver="com.teradata.jdbc.TeraDriver",
dbtable="dbname.tablename",
user="user1",password="***")
.load()
这是错误的
py4j.protocol.Py4JJavaError: An error occurred while calling o159.load. : java.lang.ClassNotFoundException: com.teradata.jdbc.TeraDriver
为了解决这个问题,我想我需要添加jarterajdbc4.jar
和`tdgssconfig.jar. 在
在Scala中,要添加jar,我们可以使用
^{pr2}$如果我对PySpark使用同样的方法,我就出错了
AttributeError: 'SparkContext' object has no attribute 'addJar'.
或者
AttributeError: 'SparkSession' object has no attribute 'addJar'
如何添加jarterajdbc4.jar
和tdgssconfig.jar
?在
下面这篇文章解释了如何向pyspark添加jdbc驱动程序。在
How to add jdbc drivers to classpath when using PySpark?
上面的例子适用于postgres和docker,但是答案应该适用于您的场景。 注意,您对驱动程序文件的描述是正确的。大多数JDBC驱动程序都在一个文件中,但是Teradata将其分成两部分。我认为一个是真正的驱动程序,另一个(tdgss)有安全性。两个文件都必须添加到类路径中才能正常工作。在
或者,只需google“如何向pyspark添加jdbc驱动程序”。在
相关问题 更多 >
编程相关推荐