hadoop原始日志中的多个字符分隔符

时间:2016-06-17 08:13:07

标签: sql hadoop hive

我在原始日志中有以下数据:

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

这里的分隔符是^ |#| ^

但是,在传递分隔符以创建外部表时,只有第一个字符^被视为分隔符。

使用的代码是:

    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;

期待这样一张桌子:

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

相反,我得到的输出是:

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

有谁知道如何将多个字符作为分隔符传递?

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

最好用一些单字符分隔符替换此分隔符。或者,如果需要真正的多字符分隔符,则使用Unicode字符。