在 Hive 0.13 中读取 CSV 文件,数据中也没有引号和逗号
Read CSV file in Hive 0.13 without quotes and comma in data as well
当数据本身包含逗号且字段没有引号字符时,如何在 Hive 版本 0.13 中读取以逗号分隔的文件。例子
fname,lname,country,city,addr,dob 是列名,
tom, kate, USA,CA,los angeles,34 brad street 5thfloor, Jun/23/1975
russel,smith,USA, Tx, 763, grass street, 5th floor, dallas, Jan/31/1999
第一行数据中没有任何带逗号的列
地址字段中的第二行数据中有逗号
763, grass street, 5th floor, 达拉斯
如何在 hive 0.13 版本中阅读此内容
谢谢
Mx
假设 addr
是唯一可能包含逗号的字段
create external table mydata
(
fname string
,lname string
,country string
,city string
,addr string
,dob string
)
row format serde 'org.apache.hadoop.hive.serde2.RegexSerDe'
with serdeproperties ("input.regex" = "(.*?),(.*?),(.*?),(.*?),(.*),(.*)")
location '/user/hive/warehouse/mydata'
;
select * from mydata;
+--------------+--------------+----------------+-------------+--------------------------------------+-------------+
| mydata.fname | mydata.lname | mydata.country | mydata.city | mydata.addr | mydata.dob |
+--------------+--------------+----------------+-------------+--------------------------------------+-------------+
| tom | kate | USA | CA | los angeles,34 brad street 5thfloor | Jun/23/1975 |
+--------------+--------------+----------------+-------------+--------------------------------------+-------------+
| russel | smith | USA | Tx | 763, grass street, 5th floor, dallas | Jan/31/1999 |
+--------------+--------------+----------------+-------------+--------------------------------------+-------------+
当数据本身包含逗号且字段没有引号字符时,如何在 Hive 版本 0.13 中读取以逗号分隔的文件。例子 fname,lname,country,city,addr,dob 是列名,
tom, kate, USA,CA,los angeles,34 brad street 5thfloor, Jun/23/1975
russel,smith,USA, Tx, 763, grass street, 5th floor, dallas, Jan/31/1999
第一行数据中没有任何带逗号的列 地址字段中的第二行数据中有逗号 763, grass street, 5th floor, 达拉斯
如何在 hive 0.13 版本中阅读此内容
谢谢 Mx
假设 addr
是唯一可能包含逗号的字段
create external table mydata
(
fname string
,lname string
,country string
,city string
,addr string
,dob string
)
row format serde 'org.apache.hadoop.hive.serde2.RegexSerDe'
with serdeproperties ("input.regex" = "(.*?),(.*?),(.*?),(.*?),(.*),(.*)")
location '/user/hive/warehouse/mydata'
;
select * from mydata;
+--------------+--------------+----------------+-------------+--------------------------------------+-------------+
| mydata.fname | mydata.lname | mydata.country | mydata.city | mydata.addr | mydata.dob |
+--------------+--------------+----------------+-------------+--------------------------------------+-------------+
| tom | kate | USA | CA | los angeles,34 brad street 5thfloor | Jun/23/1975 |
+--------------+--------------+----------------+-------------+--------------------------------------+-------------+
| russel | smith | USA | Tx | 763, grass street, 5th floor, dallas | Jan/31/1999 |
+--------------+--------------+----------------+-------------+--------------------------------------+-------------+