Hive:如何处理数据文件中有分隔符的文件?
Posted
技术标签:
【中文标题】Hive:如何处理数据文件中有分隔符的文件?【英文标题】:Hive: How to Handle files which has delimiter in the data file? 【发布时间】:2018-08-30 07:33:15 【问题描述】:我有以下需要插入配置单元表的数据。数据在文件中具有默认分隔符。如何插入到 hive 表中?
10,Andrew,Man”,”ager,DE,PC
11,Arun,Manager,NJ,PC
12,Harish,Sales,NJ,MAC
13,Robert,Manager,PA,MAC
14,Laura,Engineer,PA,MAC
谢谢!
【问题讨论】:
【参考方案1】:尝试使用CSV Serde
create table test_table(id int,...) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES ( "separatorChar" = ",", "quoteChar" = "”", "escapeChar" = "\\" )
根据数据更改quoteChar
【讨论】:
在 DDL 下面使用创建表名称(EmployeeID INT、FirstName STRING、Title STRING、State STRING、Laptop STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' WITH SERDEPROPERTIES (" separatorChar" = ",", "quoteChar" = """, "escapeChar" = "\\" ) 存储为文本文件;但是','没有显示在表格中。 “10”“安德鲁”“经理”“DE”“11”“Arun”“经理”“NJ”“PC”“12”“Harish”“销售”“NJ”“MAC”“13”“罗伯特”“经理”“PA”“MAC”“14”“劳拉”“工程师”“PA”“MAC”【参考方案2】:您有两个选择,首先您可以使用"|"
(管道)作为分隔符,然后插入配置单元表中,否则您必须将数据字段用双引号" "
括起来,然后在创建 DDL 时使用 OpenCSV Serde为您的 Hive 表。现在您可以查询表,Hive 将正确显示数据。
【讨论】:
以上是关于Hive:如何处理数据文件中有分隔符的文件?的主要内容,如果未能解决你的问题,请参考以下文章