2013-08-26 34 views
0

我有一個包含多行數據的列的CSV文件。當我試圖將數據導入HIVE表時,默認情況下它會佔用一行並導入不正確的結果。將數據導入HIVE表中列值超過一行

示例文件

1 「第1行

線路2」,2012年12月23日

2 「第1行第2行」 2012年12月24日。

在這種情況下,它將第一個條目視爲兩個單獨的行。什麼是緩解這個問題的命令?以下

回答

0

就好像現在Hive僅支持默認行分隔符'\ n'。所以你將不得不編輯你的文件才能導入到Hive Table。

0

用途:

[email protected]>>cat file.txt 
1,"Line 1 
Line 2", 12/23/2012 
2, "Line 1 Line 2" 12/24/2012. 

[email protected]>> sed '{N;s/\n/ /g}' file.txt 

輸出是:

1,"Line 1 Line 2", 12/23/2012 
2, "Line 1 Line 2" 12/24/2012. 

(N)在下一行添加到工作緩衝區。 現在您可以進一步解析並將數據存儲到Hive表中。

+0

謝謝你的回答。 Sed是Unix命令,我正在使用Windows平臺上的Hadoop Command Line(HDP)。是否有Windows的命令行選項? –

+0

我得到它在Windows上工作,我擁有的數據集是更復雜的,我也有一個3列或更多行的列。使用上面的表達式,我無法處理它們,因爲我注意到表達式從數據集中刪除了幾行。你能幫我解決這些問題嗎? –

+0

當然。可以從數據集中提供一些行,以便我可以幫助您? –

相關問題