【发布时间】:2019-02-13 19:52:31
【问题描述】:
我正在使用 PySpark 的 read 方法从各种 JDBC 源读取数据。从 Teradata、mySQL、Oracle、SQL Server 读取的 JDBC 都在 100% 工作,但是,我现在尝试从 Informix 读取,结果是 列值中的列标题 代替实际数据:
query_cbu = '''
SELECT first 5
ac2_analysis_p
FROM informix.ac2_aux_cust
'''
指定标题选项没有帮助:
df_cbu = \
spark.read.format("jdbc") \
.option("url", url) \
.option("dbtable", '({}) tbl'.format(query_cbu)) \
.option("user", db_username) \
.option("password", db_password) \
.option("header", "true") \
.load()
df_cbu.show()
结果:
+--------------+
|ac2_analysis_p|
+--------------+
|ac2_analysis_p|
|ac2_analysis_p|
|ac2_analysis_p|
|ac2_analysis_p|
|ac2_analysis_p|
+--------------+
使用相同的 jdbc 驱动程序 (ifxjdbc.jar) 值从 DBVisualiser 正确返回:
我无法想象有什么机制会导致这种情况。谁能告诉我从哪里开始寻找问题?
【问题讨论】:
-
Why you shouldn't post pictures of code/data。请edit您的问题在问题正文中包含代码和输出。但是根据您的标题,我猜您需要将
header选项设置为true(默认为false)。 -
@pault 谢谢,我试图放置代码,但它会导致转义字符等的技巧来合并引号,也很高兴显示 Jupyternotebook 和 DbVisualizer 的用户界面的上下文提供。不幸的是,将 header 选项设置为 true 并没有什么不同。感谢您的宝贵时间。
标签: python apache-spark pyspark informix