如果我尝试在cab文件上创建impala外部表,该文件是由管道分隔的,并且在“”中包含的列很少,“双引号”也包含分隔符|管道,我该怎么办呢。
黑斑羚不支持Serde。 还有其他办法吗?请在下面找到示例数据
123 |作者Abhijit | “|| A | B |”
答案 0 :(得分:0)
您可以通过文件浏览器将cab文件加载到hdfs中。然后,您可以从hdfs读取并为给定文件指定分隔符 - 在这种情况下,您的分隔符将是管道。使用与您的文件相关的以下语句应该可以正常工作:
CREATE [EXTERNAL] TABLE [IF NOT EXISTS]
db_name.table_name
ROW FORMAT DELIMITED BY '|'
LOCATION 'hdfs_path'
此处的位置只是您在hdfs中的cab文件的位置。
答案 1 :(得分:0)
不要在构造的文本数据文件中用引号括起字符串值。如果需要在字段值中包含分隔符,例如将带有逗号的字符串值放在CSV格式的数据文件中,请在CREATE TABLE语句中使用ESCAPED BY子句指定转义字符,然后插入该字符紧接在任何需要转义的分隔符之前(在您的文本文件中)。
https://impala.apache.org/docs/build/html/topics/impala_txtfile.html