2015-03-02 114 views
0

我正在創建一個表,並且想要導入(加載到postgres)一些列有一些缺失值(空單元格)的製表符分隔文件。我希望這些單元格保持空白(或者可能將它們轉換爲NULL,同時執行加載/或之後/或將它們留空)。導入丟失一些浮點類型值的csv數據表

我曾嘗試下面的腳本:

CREATE TABLE Conclusive_wg_H3K9me3_dn 
(
Conclusive_wg_K9me3_DN_sorter float,  
Conclusive_wg_K9me3_DN_geneid character(80) NOT NULL, 
Conclusive_wg_K9me3_DN_bvi_srt float, 
Conclusive_wg_K9me3_DN_cbk_srt float, 
Conclusive_wg_K9me3_DN_dj_srt float,  
Conclusive_wg_K9me3_DN_evj_srt float, 
Conclusive_wg_K9me3_DN_flv_srt float, 
Conclusive_wg_K9me3_DN_ghw_srt float, 
Conclusive_wg_K9me3_DN_gvz_srt float, 
Conclusive_wg_K9me3_DN_srr_srt float, 
Conclusive_wg_K9me3_DN_AllCount float, 
Conclusive_wg_K9me3_DN_PercentAllCount float, 
Conclusive_wg_K9me3_DN_DynamicCounat float,  
Conclusive_wg_K9me3_DN_PercentDynamic float,  
Conclusive_wg_K9me3_DN_GeneName character(80) NOT NULL, 
Conclusive_wg_K9me3_DN_RankSorting float, 
Conclusive_wg_K9me3_DN_NewScore float, 
CONSTRAINT Conclusive_wg_K9me3_DN_geneid PRIMARY KEY (Conclusive_wg_K9me3_DN_geneid) 
); 
COPY Conclusive_wg_H3K9me3_dn FROM 'G:\CarrollLab\Teena\ConsolidationWithMethylationData_NoiseBelow32Removed\FromPostgreSQLdb\FigsAndTangentWholeGenes\DynamicWholeGeneValues\OutputFromPostgres\ConclusiveDynamicGenes\Conclusive_wg_H3K9me3_dn.txt' WITH (FORMAT 'csv', DELIMITER E'\t', NULL 'NULL',HEADER); 

如果我使用文本分隔的文件中的所有行都浮點值執行該腳本,導入過程的工作就好了!沒有麻煩。

但是,在嘗試使用一個文件有幾個空單元格(缺少一些浮點值的),我遇到了以下錯誤味精來運行它:

ERROR: invalid input syntax for type double precision: "" 
CONTEXT: COPY conclusive_wg_h3k9me3_dn, line 9, column conclusive_wg_k9me3_dn_flv_srt: "" 
********** Error ********** 

ERROR: invalid input syntax for type double precision: "" 
SQL state: 22P02 
Context: COPY conclusive_wg_h3k9me3_dn, line 9, column conclusive_wg_k9me3_dn_flv_srt: "" 

事實上,我在9號線txt分隔的文件在其一列中缺少數據(空單元格)。

我是否必須先將EXCEL中的所有空表格單元格替換爲字符串「NULL」?... 浮點類型是否能識別NULL字符串?

或者我可以使postgres以某種方式理解如何處理空單元格而不用用其他方法替換空值?

如何解決這個問題? 謝謝! Roy

回答

0

好的,問題解決了!

我應該將NULL分類從'NULL'更改爲'',因此:(請參見底部): WITH(FORMAT'csv',DELIMITER E''t',NULL'',HEADER );

CREATE TABLE Conclusive_wg_H3K9me3_dn 
(
Conclusive_wg_K9me3_DN_sorter float,  
Conclusive_wg_K9me3_DN_geneid character(80) NOT NULL, 
Conclusive_wg_K9me3_DN_bvi_srt float, 
Conclusive_wg_K9me3_DN_cbk_srt float, 
Conclusive_wg_K9me3_DN_dj_srt float,  
Conclusive_wg_K9me3_DN_evj_srt float, 
Conclusive_wg_K9me3_DN_flv_srt float, 
Conclusive_wg_K9me3_DN_ghw_srt float, 
Conclusive_wg_K9me3_DN_gvz_srt float, 
Conclusive_wg_K9me3_DN_srr_srt float, 
Conclusive_wg_K9me3_DN_AllCount float, 
Conclusive_wg_K9me3_DN_PercentAllCount float, 
Conclusive_wg_K9me3_DN_DynamicCounat float,  
Conclusive_wg_K9me3_DN_PercentDynamic float,  
Conclusive_wg_K9me3_DN_GeneName character(80) NOT NULL, 
Conclusive_wg_K9me3_DN_RankSorting float, 
Conclusive_wg_K9me3_DN_NewScore float, 
CONSTRAINT Conclusive_wg_K9me3_DN_geneid PRIMARY KEY (Conclusive_wg_K9me3_DN_geneid) 
); 
COPY Conclusive_wg_H3K9me3_dn FROM 'G:\CarrollLab\Teena\ConsolidationWithMethylationData_NoiseBelow32Removed\FromPostgreSQLdb\FigsAndTangentWholeGenes\DynamicWholeGeneValues\OutputFromPostgres\ConclusiveDynamicGenes\Conclusive_wg_H3K9me3_dn.txt' WITH (FORMAT 'csv', DELIMITER E'\t', NULL '',HEADER);