sql - 在 Hive 0.13 中读取 CSV 文件,数据中也不带引号和逗号

标签 sql regex csv hive cloudera

当数据本身包含逗号并且字段没有引号字符时,如何在 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 号 5 楼

如何在 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 |
+--------------+--------------+----------------+-------------+--------------------------------------+-------------+

关于sql - 在 Hive 0.13 中读取 CSV 文件,数据中也不带引号和逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42215151/

相关文章:

javascript - 匹配正则表达式 javascript 中的特殊字符

excel - 仅提取 8 位数字且后面不包含字符 (., @)

c# - 从 CSV 文件外部创建 excel 图表

c# - 编码导出 CSV 文件的问题

java - 选择 BETWEEN 日期返回错误结果

mysql - 如何显示具有不同参数的相同价格的两个不同总和?

python - 使用正则表达式过滤列表时为 "TypeError: expected string or buffer"

csv行解析,在末尾打印额外的行

MySQL #1093 - 您不能在 FROM 子句中指定目标表 'giveaways' 进行更新

MySQL:相交匹配一定数量特征的行