0
我有數據需要上傳到S3然後複製到Redshift的本地Postgres數據庫。熊貓讀取SQL到CSV - Int轉換
要做到這一點,我使用Python熊貓如下:
engine = create_engine(self.engine)
connection = engine.raw_connection()
df = pd.read_sql(<sql string>, connection, coerce_float=False)
df.to_csv(<output fn>, header=True, index=False, encoding='utf-8')
,它執行的varchar(255), varchar(255), int, int
返回行的SQL。但是,由於其中一些值可能爲空,所以我遇到了Pandas Caveat about integers and NaN values。
This post通過將na設置爲任意int並將astype顯式設置爲int來解決它們的問題。他們能夠這樣做是因爲它們的所有列都具有相同的數據類型。但是,我有一個varchar(255)和int的混合。
我該如何強制df.to_csv(...)
輸出我的整數作爲整數(而不是浮點數)?
感謝,
我希望空位保持空位。我不希望他們成爲一個任意的int。如果是這樣,Redshift的副本將插入任意的int作爲該記錄的字段值。 – dlstadther
什麼是Redshift的空標識符?如果它與SQL中的'\ N'類似,則可以將列轉換爲varchar,並用'\\ N'替換所有空值... – Kartik
Redshift複製命令允許使用BLANKASNULL和EMPTYASNULL。 redshift中的字段不能更改其數據類型。相反,你必須創建一個你想要的數據類型的新列,然後執行'更新
相關問題