comment hive_Adventure电商分析案例第三篇《Hive初步学习》

1f9d2101fa02b1c4782a597f0e72f927.png

此系列文章是《数据蛙三个月就业班》adventure电商分析案例的总结,如要了解此项目,参考adventure电商分析项目总结(2020版本)整个案例包括linux、shell、python、hive、pycharm、git、pyechart、sqoop等的使用,为了让就业班同学能够更好的学习,所以对上面大家有疑问的内容进行了总结。本篇是adventure电商分析案例第一篇--Git使用
阅读目录:

  • hive与mysql的区别
  • hive的基本使用
  • python脚本和hive的结合使用

一:hive与mysql的区别

对于没有接触过hadoop集群的同学,大家可以暂时理解hive为像mysql一样的数据库。之所以这样来理解,就是想先让大家把hive数据库操作语句中的知识点给掌握起来,然后能够完成我们的项目。大家切记,不要一开始就是装hadoop集群,找各种hive 的学习视频。下面,我带着大家来一起使用下hive 数据库,大家可以直接在服务器上来操作的。

二: hive的基本使用

  • 建库和建表
create database if not exists ods;#建立ods数据库
drop table if exists ods.ods_stock_basics;#建立ods_stock_basic表
create table ods.ods_stock_basics(
ts_code varchar(10) comment 'TS代码',
symbol varchar(10) comment  '股票代码',
name varchar(10) comment '股票名称',
area varchar(10) comment    '所在地域',
industry varchar(10) comment    '所属行业',
fullname varchar(256) comment   '股票全称',
-- enname varchar(256) comment  '英文全称',#"Ping An Bank Co., Ltd."会报错,不使用
market varchar(10) comment  '市场类型(主板/中小板/创业板)',
exchanges varchar(10) comment '交易所代码',
curr_type varchar(10) comment '交易货币',
list_status varchar(10) comment '上市状态:L上市 D退市 P暂停上市',
list_date date comment  '上市日期',
is_hs varchar(10) comment   '是否沪深港通标的,N否 H沪股通 S深股通' )  
COMMENT '股票基础信息数据'
ROW FORMAT DELIMITED
fields terminated by ','  #这句和上面一句一起理解为:字段之间以逗号为分隔
stored as textfile location '/home/mike/ods';# 数据的文件格式是textfile
#关于这个路径/home/mike/ods/ 这个是hadfs的路径,大家不用去想,也可以不用写
  • 给表中传入数据

首先找到要传入到ods_stock_basic这个表中的数据,这个我们在linux服务器上已经上传了

bdae7be0d1ff5000b26e48d1f2440a5b.png

我们再来看下文件内容,命令是more stock_baisc.csv

e96e9c016b37826420bdaf469134e857.png

在咱们的服务器上直接输入hive命令,我们就可以直接来操作hive数据库了

8e5b0bbc8a2f9d294999077e22ce6324.png

紧接着我们把数据传入到ods_stock_basic这个表中,命令如下:

load data local inpath '/home/mike/stock_basic.csv' into table ods.ods_stock_basics操作完hive这个命令后直接复制粘贴上面这段话,enter换行来运行下就好(由于数据已经加载进去了,这里就不做演示了)。最后我们来查找下看看有没有数据

d77757afd110a120165ee0f1a69a098c.png

通过上面的操作是不是感觉和mysql基本一样呢

三:python脚本和hive的结合使用

由于咱们课程中涉及到每日股票的交易数据进入hive中,如果每天导入一次的话,就太麻烦了,应该写成脚本的形式,然后设置成定时任务来执行。
下面给大家提前看下脚本:

def add_sql_daily_basic(yesterday_date):
    # 从mysql中取出昨日的交易数据
    query_sql = "select * from stock_daily_basic where trade_date='{yesterday_date}'".format(yesterday_date=yesterday_date)
    daily_basic_df = pd.read_sql_query(query_sql, con=datafrog)
    # 数据转成csv 格式
    daily_basic_df.to_csv('/home/mike/daily_basic.csv', header=False, index=False)
     # 加载数据到mysql中
    load = str("load data local inpath '/home/mike/daily_basic.csv' into table ods.ods_daily_basic")
    load_sql = str('hive -e' + '"' + load + '"')
    os.system(load_sql)

最后给大家准备了一份hive 的练习题目。

99a85a1096a9f97d01e66d7c01f47271.png

hive练习题目,大家可以在咱们的服务器中找到这份数据,然后进行练习操作哈

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值