将数据从hdfs加载到hive结果表中的null输出

时间:2014-06-11 11:50:08

标签: hadoop hive

我正在尝试使用配置单元序列化和反序列化查询将数据从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

1 个答案:

答案 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检查执行跟踪图像​​enter image description here