本地 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 子句的条件的主要内容,如果未能解决你的问题,请参考以下文章

如何在熊猫中使用 read_csv 将时区感知日期时间作为时区天真的本地 DatetimeIndex 读取?

Python pyspark 将 DF 写入 .csv 并存储在本地 C 盘

Jmeter读取本地txt/csv文件作为请求参数,实现接口自动化

如何在python中使用csv作为实例属性?

使用 csv 文件作为输入在 python 中绘制直方图

如何使用 python 将本地 CSV 上传到谷歌大查询