首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

hive业务总结1

问题:从基础用户表中随机取出10万基础用户的id和phone号码,然后关联大数据中心的十几张表,取出其匹配数据,每一个表对应一个文件,并且将文件从hdfs导出到本地系统,很简单的一个提数操作,做的时候却遇到许多坑,当然事后也有进步。话不多说,开始操作。

1.创建临时表 temp_users

create table temp_users(id string, phone string ) row format dellimited fields

terminated by ',' stored as textfile;

2. 从基础用户表随机取出10万用户

insert intotabletemp_users select id,phone from userinfos where partion_flag= '201218' order by rand() limit 100000;

3.在hdfs系统创建目录

此处就稍微卡了一下,对shell命令不熟悉。

列出hadoop所有的文件目录:

hadoop fs -ls /

选择一个有权限的目录

hadoop fs -mkdir /tom/jerry

4.sql语句的方式导入到hdfs文件系统

将执行结果存放到tom/jerry目录下

数据表:message_info1

insertoverwritedirectory '/tom/jerry/message_info1'

row format delimited fieldss terminated by ','

selet a.id ,b.* from temp_users a

left join message_info1 b on a.id=b.id;

注意:message_info1系统自动生成

5.将文件导出到本地文件系统

格式:hadoop fs -cathdfs文件目录本地目录

hadoop fs -cat

/tom/jerry/message_info1/*

/glove/message/msg_info1

注意:msg_info1目录自动生成。

6.写一个脚本,一次性执行十几张表

准备工作

把所有要操作的表的写入一个文件中

目录:/temp/tab_name.txt

程序如下:

后记:

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180208G0M9FC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券