問(wèn)題
今天 Hive 導(dǎo)入 csv 文件時(shí),開(kāi)始時(shí)建表語(yǔ)句如下:
CREATE TABLE IF NOT EXISTS test.student (
name STRING COMMENT '姓名',
age STRING COMMENT '年齡',
gender STRING COMMENT '性別',
other_info STRING COMMENT '其他信息'
)
COMMENT '學(xué)生信息表'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
然后導(dǎo)入 csv 文件,發(fā)現(xiàn)數(shù)據(jù)串列了,查看數(shù)據(jù)發(fā)現(xiàn)是因?yàn)閿?shù)據(jù)中包含逗號(hào)的問(wèn)題,因?yàn)?csv 文件列分隔符就為逗號(hào),所以直接導(dǎo)入到表中會(huì)使數(shù)據(jù)串列。
解決辦法
查詢資料發(fā)現(xiàn)是建表語(yǔ)句的問(wèn)題,所以我們要需要在建表的時(shí)候指定列包圍符號(hào)。如下:
CREATE TABLE IF NOT EXISTS test.student (
name STRING COMMENT '姓名',
age STRING COMMENT '年齡',
gender STRING COMMENT '性別',
other_info STRING COMMENT '其他信息'
)
COMMENT '學(xué)生信息表'
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
'separatorChar' = ',',
'quoteChar' = '"',
'escapeChar' = '\\'
)
STORED AS TEXTFILE;
使用 OpenCSVSerde
作為數(shù)據(jù)序列化程序,并通過(guò) SERDEPROPERTIES
指定 separatorChar
(分隔符)和 quoteChar
(引號(hào)包圍符號(hào))以及 escapeChar
(轉(zhuǎn)義字符)的值。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-675342.html
默認(rèn) csv 文件的分隔符、引號(hào)和轉(zhuǎn)義字符(如果未指定)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-675342.html
DEFAULT_ESCAPE_CHARACTER \
DEFAULT_QUOTE_CHARACTER "
DEFAULT_SEPARATOR ,
到了這里,關(guān)于Hive 導(dǎo)入csv文件,數(shù)據(jù)中包含逗號(hào)的問(wèn)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!