Hive:使用 RegexSerDe 定义输入格式
Hive: Using RegexSerDe to define input format
我查看了几个解决方案,但在决定 post 我的问题之前,其中 none 有效。我尝试在配置单元中创建一个 table 并从 String A, "String B"
形式的 csv 中加载数据。我尝试自己编写正则表达式,但每当我加载数据时,所有值都是 NULL。
我的创建table命令如下:-
create table tab1 (col1 string, col2 string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "\"([^\"]*)\",\"([^\"]*)\"$")
我正在通过以下命令加载数据:-
load data inpath '/path/to/file.csv' into table tab1;
对我做错了什么有什么想法吗?
您可以改用a CSV serde(这个默认知道引号字符)。:
add jar /home/hadoop/hive/lib/csv-serde-1.1.2-0.11.0-all.jar;
create table tab1 (col1 string, col2 string)
row format serde 'com.bizo.hive.serde.csv.CSVSerde';
修改了下面的常规expression.Try代码。
create table tab (col1 string, col2 string) ROW FORMAT SERDE
'org.apache.hadoop.hive.contrib.serde2.RegexSerDe' WITH SERDEPROPERTIES
("input.regex" = "([^ ]*),\"([^\"]*)\".*");
我查看了几个解决方案,但在决定 post 我的问题之前,其中 none 有效。我尝试在配置单元中创建一个 table 并从 String A, "String B"
形式的 csv 中加载数据。我尝试自己编写正则表达式,但每当我加载数据时,所有值都是 NULL。
我的创建table命令如下:-
create table tab1 (col1 string, col2 string)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "\"([^\"]*)\",\"([^\"]*)\"$")
我正在通过以下命令加载数据:-
load data inpath '/path/to/file.csv' into table tab1;
对我做错了什么有什么想法吗?
您可以改用a CSV serde(这个默认知道引号字符)。:
add jar /home/hadoop/hive/lib/csv-serde-1.1.2-0.11.0-all.jar;
create table tab1 (col1 string, col2 string)
row format serde 'com.bizo.hive.serde.csv.CSVSerde';
修改了下面的常规expression.Try代码。
create table tab (col1 string, col2 string) ROW FORMAT SERDE
'org.apache.hadoop.hive.contrib.serde2.RegexSerDe' WITH SERDEPROPERTIES
("input.regex" = "([^ ]*),\"([^\"]*)\".*");