2016-03-29 8 views
3

こんにちは、ハイブテーブルに挿入したいデータには、ラテン語とutf-8でエンコードされた形式のデータがあります。しかし、まだハイブは正しく表示されません。Hive Utf-8エンコード数はサポートされていますか?

実際のデータ: - ハイブ

Hive Data

に挿入 Actual Data

データは、私は以下のハイブDDLとコマンドがあり、UTF-8にもまだ同じ問題にテーブルのエンコーディングを変更しました

CREATE TABLE IF NOT EXISTS test6 
(
CONTACT_RECORD_ID string, 
ACCOUNT string, 
CUST string, 
NUMBER string, 
NUMBER1 string, 
NUMBER2 string, 
NUMBER3 string, 
NUMBER4 string, 
NUMBER5 string, 
NUMBER6 string, 
NUMBER7 string, 
LIST string 
) 
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY '|'; 
ALTER TABLE test6 SET serdeproperties ('serialization.encoding'='UTF-8'); 

ハイブはUTF-8の最初の128文字のみをサポートしていますか? お願いします。

+0

_「ハイブは正しく表示されません」_実際には表示されていないことを確認しましたか?あなたは 'export LANG = en_US.UTF-8'を実行し、あなたの端末アプリがUTF-8を期待していることを確認しましたか?(PuTTY、_Window> Translation> Remote charset = UTF-8_など) –

+0

また、実際にUTF-8コンテンツが検出されたことを確認するために、HDFSファイルの1つをダウンロードして 'file'コマンドを実行しましたか? –

答えて

0

これは理想的な解決策ではないかもしれませんが、これはうまくいきます。ハイブは、どうにかUTF8として扱われていないようです。次のパラメータを使用してテーブルを作成してください:

CREATE TABLE testjoins.yt_sample_mapping_1(
    `col1` string, 
    `col2` string, 
    `col3` string) 
    ROW FORMAT SERDE "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe" 
    WITH SERDEPROPERTIES ("separatorChar" = ",", 
    "quoteChar" = "\"", 
    "escapeChar" = "\\", 
    "serialization.encoding"='ISO-8859-1') 
    TBLPROPERTIES ('store.charset'='ISO-8859-1', 
    'retrieve.charset'='ISO-8859-1'); 
関連する問題