我正在尝试使用配置单元序列化和反序列化查询将数据从HDFS加载到配置单元数据仓库,但是从表中检索结果为null输出。
任何人都可以帮帮我吗?
hive>create table stations(usaf string, wban string, name string)
>row format serde 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
>with SERDEPROPERTIES(
>"input.regex" ="(\\d{6}) (\\d{5}) (.{29}) .*"
>);
hive> load data inpath '/user/cloudera/input-new/ncdc/metadata/stations-fixed-width.txt'
>into table stations;
从表格中检索
hive>select * from stations limit 4;
结果:
NULL NULL NULL
NULL NULL NULL
NULL NULL NULL
示例数据如下所示:
010014 99999 SOERSTOKKEN NO NO ENSO +59783 +005350 +00500
答案 0 :(得分:1)
选中了regex - 这只是正确的。 只是 在 SERDEPROPERTIES 中添加 output.format.string ,如下所示:
create table stations(usaf string, wban string, name string)
row format serde 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
with SERDEPROPERTIES(
"input.regex" ="(\\d{6}) (\\d{5}) (.{29}) .*",
"output.format.string" = "%1$s %2$s %3$s"
)
;
Plz检查执行跟踪图像