假设我想在配置单元中创建一个包含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瓶装水”,它在中间有一些特殊字符“\”,因此导致hive table column off位置从col3开始,因为我创建表时使用“\”作为分隔符。特殊字符\ |中确实有管道字符。
是否有任何方法可以解决此问题,以便配置单元可以正确加载数据?
谢谢你的帮助。
1条答案
按热度按时间9rygscc11#
您可以添加
ESCAPED BY
子句来允许字符转义从配置单元文档
通过使用“escaped by”子句(例如由“\”转义)为分隔符字符启用转义如果要处理可以包含这些分隔符字符的数据,则需要转义。
也可以使用“null defined as”子句指定自定义空格式(默认值为“\n”)。