regex - 在 Hive 表中以 CSV 格式加载数据

标签 regex csv hadoop hive

我正在尝试将以下数据存储在 csv 文件中到 Hive 表中,但未能成功

Ann, 78%,7,  
Beth,81%,5,  
Cathy,83%,2,  

数据存在于 CSV 文件中。我使用以下定义在 Hive 中创建了表:

Hive> CREATE TABLE test1 (Name String, Perc String, Rank String)  
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'  
WITH SERDEPROPERTIES ("input.regex" = "^(\w+)\,(\w+)\%\,(\w+)$",  
"output.format.string" = "%1$s %2$s %3$s" )
STORED AS TEXTFILE;"      
ok
hive> load data local inpath '/tmp/input.csv' into table test1;  
ok  
hive> Select * from test1;  
ok  

Name    Perc    Rank  
Null    Null    Null  
Null    Null    Null  
Null    Null    Null  

我无法找出错误。结果数据未加载到表中。

最佳答案

您不应该需要 RegexSerDe。您应该能够将分隔符设置为逗号。

CREATE TABLE test1(名称字符串、Perc 字符串、排名字符串)行格式分隔字段由 ',' 终止,存储为文本文件;

您还可以查看此 CVS Serde。 https://github.com/ogrodnek/csv-serde

关于regex - 在 Hive 表中以 CSV 格式加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30507602/

相关文章:

java - 比较两个未知字符串并找到匹配项

Hadoop LZO native 库和 JAR 不可用

hadoop - Hbase 客户端创建数千个到单个服务器的连接

hadoop - Pyspark ML 错误对象没有属性映射

regex - Lucene 如何对 RegexQuery 中的结果进行评分?

c++ - 正则表达式匹配数字的重复模式,后跟任何类型的定界符?

c - PCRE2条件替换正则表达式

asp-classic - 如何在VBScript中逐行读取CSV文件

matlab - 从matlab中的CSV文件中读取特定列