如何在 Impala 中读取csv, Impala 的字段包含双引号分隔符

jhkqcmku  于 2021-06-26  发布在  Impala
关注(0)|答案(2)|浏览(534)

如果我试图在cab文件上创建impala外部表,该表是以管道分隔的,并且只有很少的列包含在“”中,双引号还包含分隔符|管道,那么我该怎么做呢。
Impala 不支持serde。还有别的办法吗?请在下面找到示例数据
123 |阿比Git|“| | a | b |”

jrcvhitl

jrcvhitl1#

在构造的文本数据文件中,不要将字符串值用引号括起来。如果需要在字段值中包含分隔符,例如,要在csv格式的数据文件中放置带逗号的字符串值,请在create table语句中使用转义by子句指定转义符,并在需要转义的任何分隔符之前插入该字符(在文本文件中)。
https://impala.apache.org/docs/build/html/topics/impala_txtfile.html

kninwzqo

kninwzqo2#

您可以通过文件浏览器将cab文件加载到hdfs中。然后可以从hdfs中读取并为给定的文件指定分隔符—在本例中,分隔符就是管道。使用以下与您的文件相关的语句应该可以正常工作:

CREATE [EXTERNAL] TABLE [IF NOT EXISTS]
db_name.table_name

ROW FORMAT DELIMITED BY '|'

LOCATION 'hdfs_path'

这里的位置只是hdfs中cab文件的位置。

相关问题