本地 CSV 作为 Python 中针对 Network Netezza DB 的 SQL where 子句的条件

Posted

技术标签:

【中文标题】本地 CSV 作为 Python 中针对 Network Netezza DB 的 SQL where 子句的条件【英文标题】:Local CSV as criteria for SQL where clause against Network Netezza DB in Python 【发布时间】:2016-09-06 17:07:48 【问题描述】:

在 Python 中,我使用 SQL 查询 Netezza 数据库,对于 Netezza 表中的变量之一,我想从该变量到外部 CSV 文件中的同一变量进行内部联接。这可能吗?

这是我的 Python 代码的示例 shell,使用 pandas read_sql 模块

*conn_nz = od.connect("DRIVER=NetezzaSQL;...")

q_test = ''' 
SELECT 
    A.var1,
    A.var2
FROM 
    Netezza.tableA A
WHERE 
   (A.var1 = csv.var1)

; '''
op_data = pd.read_sql(q_test, conn_nz)  
op_data*

这可能吗?我对 SQL 和 Python 都很陌生。

【问题讨论】:

【参考方案1】:

由于它是 CSV,因此您最好的选择是在 Netezza 中创建一个 external table 并加入其中。

create external table some_csv (
  column1 varchar(10)
  ,column2 varchar(20)
  ..
) using (
  dataobject '/path/to/file'
  delimiter ','
);

然后你可以直接从数据库内部加入它。

select
  var1
  ,var2
from
  tableA
  join some_csv csv using (some_join_column)

【讨论】:

以上是关于本地 CSV 作为 Python 中针对 Network Netezza DB 的 SQL where 子句的条件的主要内容,如果未能解决你的问题,请参考以下文章