2016-03-20 22 views
1

Stack Exchangeから250000のポストを含むCSVファイルをハイブに読み込みたいとします。すべてのフィールドは「」で区切られ非構造化CSVデータをハイブに読み込む

Id Score ViewCount ParentId Body DisplayName rnk 

が、ネジのすべてアップが体であるフィールド:CSVは、次の形式を取ります。

本文には、ウェブサイト上のトップ250000の投稿の内容が含まれているので、そこにはすべての種類の文字が含まれているため、250000行の行ごとに1つのポストがあります。

私はSerdeとRegexpを読みましたが、私のHiveテーブルにはまだNull値があります。

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ファイルをインストールする必要があると思います。このJARファイルをAzureクラウドのHortonworks Sandboxにどのようにインストールできるのか知っていますか? – TheGoat

+0

ハイブが動作しているボックスにsshアクセスできますか? (私は紺碧を使用していないので、セットアップがどのようなものか分かりません)。 jarをホームディレクトリにコピーし、ハイブスクリプトの先頭に 'add jar/home/hadoop/hive/csv-serde-1.1.2-0.11.0-all.jar'を実行してください。 – maxymoo

関連する問題