【问题标题】:Not able to use escapeChar in hive as '\r\n"无法在 hive 中使用 escapeChar 作为 '\r\n"
【发布时间】:2020-04-01 04:14:06
【问题描述】:

在 OpenCvSerde 属性中定义转义字符时,我在 Hive 中遇到问题。按照下面的代码:

CREATE EXTERNAL TABLE IF NOT EXISTS databasename.tablename (
    ColumnName1 datatype,
    ColumnName2 datatype,
    ColumnName3 datatype
) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
   "separatorChar" = "|",
   "quoteChar"     = "\"",
   "escapeChar"    = "\r\n"
) Location '<HDFS LOCATION>' tblproperties ("skip.header.line.count"="1");

csv 文件将 '\r\n' 视为与 '\n' 相同。这在记录数量上有所不同。

请提出解决方案,以便我可以在 OpenCSVserde 属性中使用 \r\n 作为 escapeChar,或者有任何其他可能性来更改 serde 属性。 P.S 使用 org.apache.hadoop.hive.serde2.OpenCSVSerde 是必须的。 我确实通过了链接:character slash is not being read by hive on using OpenCSVSerde

但这并没有达到我的目的。

谢谢

【问题讨论】:

    标签: hive


    【解决方案1】:

    你能做一个八进制转储并查看分隔符吗? 您还可以将“escapeChar”指定为“\u001”吗 试试看?

    【讨论】:

    • 你能不能试试 "escapeChar" = "\\"
    • 尝试了“\u001”和“\001A”。他们都没有工作。 "\\" 不是必需的。加上它也不起作用。
    猜你喜欢
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    相关资源
    最近更新 更多