使用Python脚本导入数据库

时间:2015-10-21 15:56:03

标签: python teradata

我尝试使用我创建的Python脚本从数据库中提取一些表...

import jaydebeapi as jdbc
import pandas.io.sql as psql
import pandas
import getpass
import yaml
p = yaml.load(file("/Users/glassjawed/.TD"))
# Contains password
c = jdbc.connect('com.teradata.jdbc.TeraDriver'
,['jdbc:teradata://******.***.***.com','glassjawed',p]
,['~/terajdbc4.jar','~/tdgssconfig.jar'])

# read in the table we want
df = psql.read_sql('SELECT TOP 10 user_id FROM store_users',c)
print(pandas.DataFrame.head(df))
print(type(df))

但我遇到了以下错误。

  File "EPNconnect.py", line 11, in <module>
    ,['~/terajdbc4.jar','~/tdgssconfig.jar'])
  File "/usr/lib/python2.7/dist-packages/jaydebeapi/__init__.py", line 359, in connect
    jconn = _jdbc_connect(jclassname, jars, libs, *driver_args)
  File "/usr/lib/python2.7/dist-packages/jaydebeapi/__init__.py", line 182, in _jdbc_connect_jpype
    jpype.JClass(jclassname)
  File "/usr/lib/python2.7/dist-packages/JPype1-0.6.1-py2.7-linux-x86_64.egg/jpype/_jclass.py", line 55, in JClass
    raise _RUNTIMEEXCEPTION.PYEXC("Class %s not found" % name)
jpype._jexception.RuntimeExceptionPyRaisable: java.lang.RuntimeException: Class com.teradata.jdbc.TeraDriver not found

我安装了最新的jar文件,但我仍然遇到此错误。我不知道如何解决这个问题。帮助

2 个答案:

答案 0 :(得分:1)

使用JayDeBeApi时,我在文件名中使用〜时遇到了一些可悲的经历。尝试使用绝对路径,例如:

{{1}}

此外,我非常喜欢在使用Python时使用teradata软件包(和ODBC)而不是JayDeBeApi(和JDBC)。

答案 1 :(得分:0)

请参阅this post

您需要获取Teradata JDBC驱动程序并提供相应jar的正确路径。 应该可以。