2016-03-20 35 views
1

我想將包含Stack Exchange的250000個帖子的CSV文件加載到Hive中。 CSV格式採用以下格式:將非結構化CSV數據加載到Hive

Id Score ViewCount ParentId Body DisplayName rnk 

每個字段都由「,」分隔,但將所有東西擰緊的字段是Body。

Body包含網站上前250000條帖子的內容,所以裏面有所有的字符,所以每行有250000行一個帖子。

我讀過Serde和Regexp,但我仍然在我的Hive表中獲得空值。

CREATE TABLE dataStore(Id string, Score string, ViewCount string,  ParentId string, Body String, DisplayName String, Rank String) 
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' 
    WITH SERDEPROPERTIES (
    "separatorChar" = ",", 
    "quoteChar"  = """", 
    "escapeChar" = "\" 
    ) 
    STORED AS TEXTFILE; 

回答

1

我通常使用ogrodnek's serde,你可能會有更多的運氣。另外,我不認爲你正確轉義的特殊字符呢,我相信你需要

"quoteChar"  = "\"", 
"escapeChar" = "\\" 
+0

感謝maxymoo,我試圖用我的代碼Ogrodnek的SERDE:行格式SERDE「com.bizo.hive.serde.csv .CSVSerde',但我收到一個無法驗證與com.bizo有關的錯誤....我想我需要安裝jar文件才能工作。你知道我可以如何在Azure雲上的Hortonworks Sandbox上安裝這個JAR文件嗎? – TheGoat

+0

你有ssh訪問配置單元正在運行的盒子嗎? (我沒有使用天藍色,所以不知道設置是什麼樣子)。如果你這樣做,只需將jar複製到你的home目錄,然後在你的hive腳本開始處運行'add jar/home/hadoop/hive/csv-serde-1.1.2-0.11.0-all.jar' – maxymoo