HIVE分析棒球运动员数据

作者: 路人乙yh | 来源:发表于2019-05-07 01:28 被阅读3次

    1.数据集

    下载地址http://www.seanlahman.com/files/database/lahman591-csv.zip
    解压后只需要用到其中的Batting.csv.

    2.启动HIVE

    打开终端
    输入su ,然后输入密码,
    输入$HADOOP/sbin/start-all.sh(启动hdfs文件系统和yarn,$HADOOP就是Hadoop安装目录),
    输入service mysqld start(启动mysql),
    运行$HIVE/bin/hive(启动HIVE,运行完进入HIVE命令行)。

    3.建表

    1. 创建数据库 create database baseball;,use baseball;
    2. 建表 create table temp_batting (col_value STRING);
    3. 本地数据录入表 load data local inpath '/home/hadoop/data/Batting.csv' into table temp_batting
    4. 创建只有有用信息的新表 create table batting (player_id STRING,year INT,runs INT);
    5. 提取信息到新表
    insert overwrite table batting select
    regexp_extract(col_value,'^(?:([^,]*)\,?){1}',1) player_id,
    regexp_extract(col_value,'^(?:([^,]*)\,?){2}',1) year,
    regexp_extract(col_value,'^(?:([^,]*)\,?){9}',1) run
    from temp_batting;
    
    1. 查看新表前 10 行观察 select * from batting limit 10 ,此时第一行数据是表头信息,删除这一行insert overwrite batting select * from batting where player_id != 'playerID'

    4.分析

    1.找出batting表中每年运动 runs 最高的记录,按 year 升序排列。
    select year,max(runs) from batting group by year;

    结果1

    2.找出每年运动次数最高的参赛者的ID并输出,需要结合上述结果来得到最后结果。

    select a.year,a.player_id,a.runs from batting a
    join (select year,max(runs) runs from batting group by year) b
    on (a.year=b.year and a.runs = b.runs);
    
    结果2

    参考文章:
    作者:reylee911
    来源:CSDN
    原文:https://blog.csdn.net/github_26054561/article/details/46053091

    相关文章

      网友评论

        本文标题:HIVE分析棒球运动员数据

        本文链接:https://www.haomeiwen.com/subject/anotbqtx.html