当前位置:   article > 正文

hdfs目录创建hive表_从hdfs文件创建hive表

从hdfs文件创建hive表

简介

针对已经存放在hdfs上的文件,创建hive表。这里推荐创建外表,因为hive外表被删除,对应目录的数据不会被清除。

步骤

step1. 根据hdfs的数据字段,创建hive表。

CREATE EXTERNAL TABLE if not exists push_log(
     ip STRING COMMENT 'IP Address of the User', 
     imei STRING,
     gameid STRING, 
     channelid STRING,
     lan STRING 'language',
     country STRING COMMENT 'country of origination',
     mac STRING,
     ver STRING,
     phonetype STRING,
     sver STRING,
     tver STRING,
     plmn STRING)
 COMMENT 'This is the staging push log table'
 PARTITIONED BY (hostid STRING, dayid STRING) **# 指定分区**
 ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001'
 STORED AS TEXTFILE
 LOCATION '/user/data/push';
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
若该表有分区,则在创建时指定分区,这点很重要。
虽然创建了分区,分区里面也有数据,但是这时候hive表依然不能识别分区数据。还需要添加分区操作
  • 1
  • 2
step2. 添加分区(更贴切说,应该是指定分区)

alter table push_log add partition(hostid='$hostid', dayid='$dayid') location '/user/data/push/$hostid/$dayid';
  • 1
  • 2
  • 3

完成上面操作后,这时候从hive中就能读取到添加的分区数据,当然如果是lzo文件的话,还需要修改FileFormat,详见上篇文章

总结

若有任何问题和建议,可以留言讨论。
在操作过程中,发现了一些提高工作效率的方法。比如批量生成lzo的索引方式(详见上篇文章)。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/692388
推荐阅读
相关标签
  

闽ICP备14008679号