我有一個包含多行數據的列的CSV文件。當我試圖將數據導入HIVE表時,默認情況下它會佔用一行並導入不正確的結果。將數據導入HIVE表中列值超過一行
示例文件
1 「第1行
線路2」,2012年12月23日
2 「第1行第2行」 2012年12月24日。
在這種情況下,它將第一個條目視爲兩個單獨的行。什麼是緩解這個問題的命令?以下
我有一個包含多行數據的列的CSV文件。當我試圖將數據導入HIVE表時,默認情況下它會佔用一行並導入不正確的結果。將數據導入HIVE表中列值超過一行
示例文件
1 「第1行
線路2」,2012年12月23日
2 「第1行第2行」 2012年12月24日。
在這種情況下,它將第一個條目視爲兩個單獨的行。什麼是緩解這個問題的命令?以下
就好像現在Hive僅支持默認行分隔符'\ n'。所以你將不得不編輯你的文件才能導入到Hive Table。
用途:
[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表中。
謝謝你的回答。 Sed是Unix命令,我正在使用Windows平臺上的Hadoop Command Line(HDP)。是否有Windows的命令行選項? –
我得到它在Windows上工作,我擁有的數據集是更復雜的,我也有一個3列或更多行的列。使用上面的表達式,我無法處理它們,因爲我注意到表達式從數據集中刪除了幾行。你能幫我解決這些問題嗎? –
當然。可以從數據集中提供一些行,以便我可以幫助您? –