我想说我想在Hive中创建一个包含4列的简单表,并加载一些以管道分隔的数据。
CREATE table TEST_1 (
COL1 string,
COL2 string,
COL3 string,
COL4 string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
;
原始数据:
123|456|Dasani Bottled \| Water|789
我对Col3值的期望是" Dasani Bottled \ |水",它有一些特殊的字符" \ | "因此我在中间使Hive表列从COL3开始关闭位置,因为我使用" | "创建表。作为分隔符。 特殊字符\ |有一个管道其中的人物。
有没有办法解决这个问题,以便Hive可以正确加载数据?
感谢您的帮助。
答案 0 :(得分:1)
您可以将ESCAPED BY
子句添加到您的表创建中,以允许字符转义
CREATE table TEST_1 (
COL1 string,
COL2 string,
COL3 string,
COL4 string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|' ESCAPED BY '\'
;
来自Hive文档
使用' ESCAPED BY'为分隔符字符启用转义。 子句(例如ESCAPED BY' \')如果您愿意,则需要转义 使用可以包含这些分隔符字符的数据。
也可以使用' NULL DEFINED AS'来指定自定义NULL格式。 子句(默认为' \ N')。