2016-06-17 4 views
0

Ich habe folgende Daten in den rohen Protokolle kommen:Mehrere Zeichenbegrenzer in hadoop raw logs

America^|#|^Northern America^|#|^United States^|#|^Texas^|#|^Houston TX 

Hier wird das Trennzeichen ist^| # |^

jedoch auf das Trennzeichen vorbei externe Tabelle erstellen , nur das erste Zeichen^wird als Trennzeichen betrachtet.

-Code verwendet wurde:

create external table xyz 
    (
    col_name1 string, 
    col_name2 string, 
    col_name3 string, 
    col_name4 string, 
    col_name5 string, 
    ) 

    row format delimited 
    fields terminated by '^!#!^' 
    lines terminated by '\n' 

    location '/data/raw/table; 

Wurde eine Tabelle wie folgt erwartet:

col_name1 col_name2   col_name3  col_name4 col_name5 
America Northern America United States Texas  Houston TX 

Statt der Ausgang ich bekam, war:

col_name1 col_name2 col_name3   col_name4 col_name5 
America  |#|   Northern America |#|   United States 

Wer weiß, wie mehrere passieren Zeichen als Trennzeichen?

Jede Hilfe wird geschätzt!

Antwort

0

Besser, dieses Trennzeichen durch ein einzelnes Zeichentrennzeichen zu ersetzen. Oder wenn ein Multi-Zeichen-Trennzeichen erforderlich ist, verwenden Sie Unicode-Zeichen.