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

q0qdq0h2  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(314)

原始日志中有以下数据:

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;

我想要一张这样的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

有人知道如何传递多个字符作为分隔符吗?
感谢您的帮助!

juzqafwq

juzqafwq1#

最好用一些单字符分隔符来替换这个分隔符。或者如果需要多字符分隔符,则使用unicode字符。

相关问题