Sql 配置单元-加载带特殊字符的分隔数据导致关闭位置
假设我想在配置单元中创建一个包含4列的简单表,并加载一些管道分隔的数据Sql 配置单元-加载带特殊字符的分隔数据导致关闭位置,sql,hadoop,hive,delimiter,pipeline,Sql,Hadoop,Hive,Delimiter,Pipeline,假设我想在配置单元中创建一个包含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值是“ DasANN瓶装\水< /强>”,中间有一些特殊的字符“ <
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值是“<强> DasANN瓶装\水< /强>”,中间有一些特殊的字符“<强> < <强> >,从而导致蜂箱表列偏离COL3,因为我用“<强> < <强> >”创建表作为定界符。strong>特殊字符\|内有管道字符。
是否有任何方法可以解决此问题,以便配置单元可以正确加载数据谢谢您的帮助。您可以像这样在表创建中添加
转义子句,以允许字符转义
CREATE table TEST_1 (
COL1 string,
COL2 string,
COL3 string,
COL4 string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|' ESCAPED BY '\'
;
从配置单元文档中
使用“转义依据”为分隔符字符启用转义
子句(例如由“\”转义)如果要
使用可以包含这些分隔符的数据
还可以使用“NULL DEFINED AS”指定自定义NULL格式
子句(默认值为“\N”)
您可以像这样将转义BY
子句添加到表创建中,以允许字符转义
CREATE table TEST_1 (
COL1 string,
COL2 string,
COL3 string,
COL4 string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|' ESCAPED BY '\'
;
从配置单元文档中
使用“转义依据”为分隔符字符启用转义
子句(例如由“\”转义)如果要
使用可以包含这些分隔符的数据
还可以使用“NULL DEFINED AS”指定自定义NULL格式
子句(默认值为“\N”)