Търся да сменя работния си процес от SAS на Python и съм бил доста успешен досега, с изключение на едно доста голямо нещо. Не мога да разбера как да кача Pandas DataFrames в Netezza на моята компания за използване в по-късни заявки. Това всъщност е доста важно, тъй като имаме много набори от данни, които качваме и използваме за заявки.
Имам следните pandas 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?