2016-03-29 16 views
3

Aslında sorun şu şekildedir: kovan tablosuna eklemek istediğim veriler latin sözcüklere ve utf-8 kodlanmış formatına sahiptir. Ancak hala kovan düzgün bir şekilde görüntülenmiyor.Hive Utf-8 Kodlama karakter sayısı destekleniyor mu?

Gerçek veri: - Kovan

Hive Data

yılında Eklenen Actual Data

Veriler aşağıda kovanı DDL ve komutlardır utf-8 de hala aynı sorunu masaya kodlamasını değiştirdi

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'); 

Kovan sadece UTF-8'in ilk 128 karakterini destekliyor mu? Lütfen öneriniz.

+0

_ "kovan düzgün görüntülemiyor" _ - aslında bir * ekran * artefakt olmadığından emin oldunuz mu? LANG = en_US.UTF-8 'i dışa aktarmayı zorladınız ve terminal uygulamanızın UTF-8 (örneğin, PuTTY, _Window> Translation> Remote charset = UTF-8_ ile) beklediğini kontrol ettiniz mi? –

+0

Ayrıca, gerçekten bir UTF-8 içeriğini algıladığından emin olmak için HDFS dosyalarından birini indirip 'file' komutunu çalıştırdınız mı? –

cevap

0

Bu ideal çözüm olmayabilir, ancak bu çalışır. Bir şekilde kovan onları UTF8 olarak görmüyor. Lütfen tabloyu aşağıdaki parametrelerle oluşturmaya çalışın:

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');