hive学习(1)---导入外部数据到hive的表中,为学习hql做准备

在学习hive前,首先需要准备一份样例数据,然后把这个数据加载进hive的对应表中,

这里我用java写file的方式创建了3个关于城市天气情况的数据,每个字段以空格隔开,\r\n换行,例子如下:

2014-05-23|07:33:58 China beijin cloudy -12 -4 189


然后,用FlashFXP把这3个文件上传到用户目录下,并把它拷贝到dfs的/tmp目录下:

[hadoop@Master ~]$ hdfs dfs -put wether*.txt /tmp


然后,创建一个hive表,叫做weather,代码如下:

hive> 
    > create table weather
    > (date string, country string,
    > city string, weath string, 
    > minTemperat int, maxTemperat int,
    > pmvalue int)
    > ROW FORMAT DELIMITED
    > FIELDS TERMINATED BY ' '
    > STORED AS TEXTFILE;

PS:此处要注意各个字段和类型

最后,表创建成功后,就需要把这3个文件的内容导入到表中:

hive> load data inpath '/tmp/wether*.txt' into table weather;

Loading data to table default.weather
Table default.weather stats: [num_partitions: 0, num_files: 3, num_rows: 0, total_size: 30888799, raw_data_size: 0]
OK
Time taken: 0.653 seconds

日志显示将3个文件的数据导入到了其中,此时其实是把文件移动到了表在dfs对应的目录下,用下面的语句验证:

hive> dfs -ls /user/hive/warehouse/weather;
Found 3 items
-rw-r--r--   3 hadoop supergroup    5120124 2014-05-23 07:55 /user/hive/warehouse/weather/wetherdata1.txt
-rw-r--r--   3 hadoop supergroup   10293769 2014-05-23 07:55 /user/hive/warehouse/weather/wetherdata2.txt
-rw-r--r--   3 hadoop supergroup   15474906 2014-05-23 07:55 /user/hive/warehouse/weather/wetherdata3.txt
hive> 



最后来看下weather表中是否有数据:

hive> select * from weather;
OK
2014-05-23|07:33:58     China   beijin  cloudy  -12     -4      189
2014-05-23|07:33:58     China   shenzhen        rain    -29     -8      199

...


由于数据太多,此处只好CTRL+Z退出了,下一步要做到就是通过hql来查找自己想要的数据




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值