Я хочу изменить свой рабочий процесс с SAS на Python, и до сих пор был довольно успешным, за исключением одной довольно большой вещи. Я не могу понять, как загрузить Pandas DataFrames в Netezza моей компании для использования в последующих запросах. На самом деле это очень важно, поскольку у нас есть много наборов данных, которые мы загружаем и используем для запросов.
У меня есть следующие панды DataFrame:
[In ] df
[Out]
col1 col2 col3
0 1 2 3
1 4 5 6
2 7 8 9
Я хотел бы загрузить этот DataFrame в свой ящик Netezza через соединение ODBC. Соединение уже настроено следующим образом:
import pyodbc
conn = pyodbc.connect("Driver=NetezzaSQL;Server=...;")
Я использовал это соединение в сочетании с Pandas read_sql
для извлечения данных и сохранения их в DataFrame. Однако я еще не понял, как извлечь данные. В SAS я бы сделал следующее:
proc sql _method;
connect to netezza as net_dw
(auth domain info goes here...)
execute( create temporary table my_table
( col1 int,
col2 int,
col3 int ) distribute on (col1) by net_dw)
insert into temp.my_table
select col1, col2, col3 from work.my_table;
quit;
Я попробовал следующее, используя Pandas:
t = pd.read_sql('''create temporary table test1 (col1 int, col2 int, col3 int); insert into temp.test1 select * from df''', conn)
но получил TypeError: 'NoneType' object is not iterable
.
Можно ли загружать временные таблицы в Netezza с помощью pyodbc и Pandas?