Hive 当csv文件具有分隔符值(例如逗号)作为字段值时,如何将其导入配置单元表?

Hive 当csv文件具有分隔符值(例如逗号)作为字段值时,如何将其导入配置单元表?,hive,Hive,我想将csv文件导入配置单元表。csv文件的字段值中包含逗号(,)。我们如何逃避它?您可以根据以下条件使用CSV SerDe 如果有逗号的字段在带引号的字符串中 sam,1,"sam is adventurous, brave" bob,2,"bob is affectionate, affable" CREATE EXTERNAL TABLE csv_table(name String, userid BIGINT,comment STRING) ROW FORMAT SERDE 'org.

我想将csv文件导入配置单元表。csv文件的字段值中包含逗号(,)。我们如何逃避它?

您可以根据以下条件使用CSV SerDe

如果有逗号的字段在带引号的字符串中

sam,1,"sam is adventurous, brave"
bob,2,"bob is affectionate, affable"

CREATE EXTERNAL TABLE csv_table(name String, userid BIGINT,comment STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
with serdeproperties (
   "separatorChar" = ",",
   "quoteChar"     = "\""   
  )   
STORED AS TEXTFILE
LOCATION 'location_of_csv_file';
如果有逗号的字段转义如下

sam,1,sam is adventurous\, brave
bob,2,bob is affectionate\, affable

CREATE EXTERNAL TABLE csv_table(name String, userid BIGINT, comment STRING)
ROW FORMAT serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
with serdeproperties (
   "separatorChar" = ",",
   "escapeChar"    = "\\" 
  )   
STORED AS TEXTFILE
LOCATION '/user/cloudera/input/csv';
在这两种情况下,输出如下:

hive> select * from csv_table;
OK
sam 1   sam is adventurous
bob 2   bob is affectionate

您可以根据以下条件使用CSV SerDe

如果有逗号的字段在带引号的字符串中

sam,1,"sam is adventurous, brave"
bob,2,"bob is affectionate, affable"

CREATE EXTERNAL TABLE csv_table(name String, userid BIGINT,comment STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
with serdeproperties (
   "separatorChar" = ",",
   "quoteChar"     = "\""   
  )   
STORED AS TEXTFILE
LOCATION 'location_of_csv_file';
如果有逗号的字段转义如下

sam,1,sam is adventurous\, brave
bob,2,bob is affectionate\, affable

CREATE EXTERNAL TABLE csv_table(name String, userid BIGINT, comment STRING)
ROW FORMAT serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
with serdeproperties (
   "separatorChar" = ",",
   "escapeChar"    = "\\" 
  )   
STORED AS TEXTFILE
LOCATION '/user/cloudera/input/csv';
在这两种情况下,输出如下:

hive> select * from csv_table;
OK
sam 1   sam is adventurous
bob 2   bob is affectionate