分享

hive sellect查询表数据为null

boy461205160 发表于 2016-5-9 18:28:21 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 9 16835
本帖最后由 boy461205160 于 2016-5-9 22:35 编辑

hive sellect查询表数据为null

创建表成功
hive> show create table wyp;
OK
CREATE TABLE `wyp`(
  `id` int,
  `name` string,
  `age` int,
  `tel` string)
ROW FORMAT DELIMITED
  FIELDS TERMINATED BY '\t'
STORED AS INPUTFORMAT
  'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  'hdfs://master:9000/user/hive/warehouse/wyp'
TBLPROPERTIES (
  'COLUMN_STATS_ACCURATE'='true',
  'numFiles'='1',
  'totalSize'='85',
  'transient_lastDdlTime'='1462786590')
Time taken: 0.054 seconds, Fetched: 18 row(s)
导入数据成功
hive> dfs -ls /user/hive/warehouse/wyp/wyp.txt;
-rw-r--r--   2 root supergroup         85 2016-05-09 17:36 /user/hive/warehouse/wyp/wyp.txt
查询wyp表数值为null
hive> select * from wyp;
OK
NULL    NULL    NULL    NULL
NULL    NULL    NULL    NULL
NULL    NULL    NULL    NULL
Time taken: 0.05 seconds, Fetched: 3 row(s)


数据格式
[root@master ~]# hadoop fs -cat /user/hive/warehouse/wyp/wyp.txt
16/05/09 22:30:33 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
1       wyp     25      13188888888888
2       test    30      13888888888888
3       zs      34      899314121




已有(9)人评论

跳转到指定楼层
boy461205160 发表于 2016-5-9 18:38:27
期待大神解答啊,困扰一周了。
回复

使用道具 举报

goldtimes 发表于 2016-5-9 20:38:37
boy461205160 发表于 2016-5-9 18:38
期待大神解答啊,困扰一周了。

wyp.txt数据是以\t分割还是以什么分割的
回复

使用道具 举报

helianthus 发表于 2016-5-9 20:56:50
这要看你的数据文件wyp.txt中是以什么作为字段分隔符了
回复

使用道具 举报

boy461205160 发表于 2016-5-9 22:34:13
helianthus 发表于 2016-5-9 20:56
这要看你的数据文件wyp.txt中是以什么作为字段分隔符了

[root@master ~]# hadoop fs -cat /user/hive/warehouse/wyp/wyp.txt
1       wyp     25      13188888888888
2       test    30      13888888888888
3       zs      34      899314121


回复

使用道具 举报

boy461205160 发表于 2016-5-9 22:35:03
goldtimes 发表于 2016-5-9 20:38
wyp.txt数据是以\t分割还是以什么分割的

[root@master ~]# hadoop fs -cat /user/hive/warehouse/wyp/wyp.txt
16/05/09 22:30:33 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
1       wyp     25      13188888888888
2       test    30      13888888888888
3       zs      34      899314121


回复

使用道具 举报

starrycheng 发表于 2016-5-10 08:27:07
boy461205160 发表于 2016-5-9 22:35
[root@master ~]# hadoop fs -cat /user/hive/warehouse/wyp/wyp.txt
16/05/09 22:30:33 WARN util.Nati ...

这里看不出是\t,还是空格,需要楼主自己明白他们的区别,然后自己验证。
\t就是在文本编辑框中按下table键
空格,是自己按下space键。

回复

使用道具 举报

boy461205160 发表于 2016-5-10 09:15:52
starrycheng 发表于 2016-5-10 08:27
这里看不出是\t,还是空格,需要楼主自己明白他们的区别,然后自己验证。
\t就是在文本编辑框中按下tabl ...

是空格,用\n表示吗
回复

使用道具 举报

starrycheng 发表于 2016-5-10 10:51:07
boy461205160 发表于 2016-5-10 09:15
是空格,用\n表示吗

问题的原因已经找到了,剩下楼主自己可以处理了。
文本的分割与hive的分割一致就不会出现这种情况了。
最简单的方法,你把数据源文本内容,换成\t
回复

使用道具 举报

boy461205160 发表于 2016-5-10 10:52:37
starrycheng 发表于 2016-5-10 10:51
问题的原因已经找到了,剩下楼主自己可以处理了。
文本的分割与hive的分割一致就不会出现这种情况了。
...

是的,已处理好了,原来是已空格分割的,换成tab分割,就ok.多谢指导啊
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条