基于用Hive泰坦尼克号乘客信息存储与分析

这篇具有很好参考价值的文章主要介绍了基于用Hive泰坦尼克号乘客信息存储与分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实现以下任务:

  • 创建数据库taitan

  • 创建乘客信息表

  • 导入数据到表中

  • 统计获救与死亡情况

  • 统计舱位分布情况

  • 统计港口登船人数分布情况

  • 统计性别与生存率的关系

  • 统计客舱等级与生存率的关系

  • 统计登船港口与生存率的关系

基于用Hive泰坦尼克号乘客信息存储与分析

1.创建一个内/外部表,指定数据的存放路径。

(1)创建数据库taitan

create database taitan if not exists taitan;

(2)设置taitan为当前数据库

use taitan;

(3)

create table tidanic(
passengerid int,
survivied int,
pclass int,
name string,
sex string,
age int,
sibsp int,
parch int,
ticket string,
fare double,
cabin String,
embarked String)row format delimited fields terminated by ',';

2.通过HDFS命令导入数据到指定路径。

第一步:从windows将数据导入到虚拟机master某一目录下。

第二步:用“vi train.csv”命令删除第一行,因为第一行为字段名称。

第三步:把本地数据上传到hive中表tidanic的目录下,命令如下,记得修改为数据实际路径。

hdfs dfs -put train.csv   /user/hive/warehouse/taitan.db/tidanic

第四步:查看前10行,检查是否导入成功。

 select * from tidanic limit 10;

3.创建静态分区表tidanic_part,字段为passengerid,survived,pclass,name,

分区字段为gender,按照性别字段sex分区。

  create table tidanic_part(
  passengerid int,
  survived int,
  pclass int,
  name string)
  partitioned by(gender string)
  row format delimited fields terminated by ','
  tblproperties(“skip.header.line.count”=”1”);

4.导入数据到静态分区表tidanic_part。

  insert overwrite table tidanic_part partition(gender='female')
  select passengerid,survived,pclass,name from tidanic where sex='female';
 
  insert overwrite table tidanic_part partition(gender='male')
  select passengerid,survived,pclass,name from tidanic where sex='male';

5.创建动态分区表tidanic_dynamic_part,字段为passengerid,survived,name,

分区字段为passengerclass,按照pclass值进行分区。

   create table tidanic_dynamic_part(
   passengerid int,
   survived int,
   name string)
   partitioned by(passengerclass string)
   row format delimited fields terminated by ',';

6.设置动态分区配置

   set  hive.exec.dynamic.partition=true;
   set  hive.exec.dynamic.partition.mode=nostrict;

7.往动态分区表中插入数据。

  insert overwrite table tidanic_dynamic_part partition(passengerclass)
  select passengerid,survived,name,pclass from tidanic;

8.创建一个tidanic子集。

(1)创建tidanic前10行数据的子表。

create table tidanic_10 as select * from tidanic limit 10;

(2)创建与tidanic表结构相同的表。

create table tidanic_like like tidanic_part;

9.创建桶表,按年龄将数据分到4个桶,抽取两个桶的数据创建一个新表tidannic_sample。

  create table tidanic_bucket(
  passengerid int,
  name string,
  age int)
  clustered by (age) into 4 buckets
  row format delimited fields terminated by ',';

10.修改桶表配置

set hive.enforce.bucketing=true;

11.往桶表中插入数据

   insert overwrite table tidanic_bucket 
   select passengerid,name,age from tidanic;

12.抽取桶1开始两个桶的数据到抽样表tidanic_sample中,

tablesample(bucket x out of y),x代表从哪个桶开始抽,

y代表抽取桶的个数为(桶数/y)个,y必须是桶数的倍数或因子。

   create table tidanic_sample as 
   select * from tidanic_bucket tablesample(bucket 1 out of 2 on age);

13.从文件系统中导入数据到泰坦尼克乘客表中

(1)从本地导入

  use taitan;
  load data local inpath '/opt/train.csv' overwrite into table tidanic;

(2)从hdfs上导入

  user taitan;
  load data inpath 'user/root/train.csv' overwrite into table tidanic;

14.(1)查询tidanic前10行数据到tidanic_10中;

  use tidanic;
  show tables;
  desc tidanic_10;
  select * from tidanic_10
  
  insert into table tidanic_10 select * from tidanic limit 10;

(2)查询tidanic表中的存活乘客数据到tidanic_save表;

   create table tidanic_save like tidanic;
 
   insert overwrite table tidanic_save select * from tidanic where survied=1; 

(3)查询tidanic表中的死亡乘客数据到tidanic_died表。

   create table tidanic_died like tidanic;
 
   insert overwrite table tidanic_died select * from tidanic where survied=0; 

15.导出数据表到文件系统:导出死亡名单到linux本地。

注意:如有local,则是导出到本地;如果没有local,则是导出到hdfs上。

   insert overwrite local directory '/opt/tidanic_died'
   row format delimited fields terminated by ',' select * from tidanic_died;

16.统计获救与死亡分布情况。

查看当前数据库

    set hive.cli.print.current.db=true;
    use taitan;
    select count(*) as p_count,survived from tidanic group by survived;

17.统计舱位分布情况。

    use taitan;
    select count(*) as p_count,pclass from tidanic group by pclass;

18.统计港口登船人员分布情况。

   use taitan;
   select count(*) as p_count,embarked from tidanic group by embarked;

19.统计性别与生存率的关系。

   use taitan;
   select sex,count(*) as s_count from tidanic where survived=1 group by sex;

(1)总的生存人数:

   select count(*) as all_count from tidanic where survived=1;  

(2)实现需要用到嵌套,具体实现如下:

 select sex,s_count/allcount as s_percent from 
(select sex,count(*) as s_count from tidanic where survivied=1 group by sex) as a 
join (select count(*) as all_count from tidanic where survivied=1) as b on 1=1;

20.统计客舱等级与生存率的关系。

 select pclass,s_count/all_count as s_percent from 
(select pclass,count(*) as s_count from tidanic where survivied=1 group by pclass) as a 
join (select count(*) as all_count from tidanic where survivied=1) as b on 1=1;

21.统计登船港口与生存率的关系。文章来源地址https://www.toymoban.com/news/detail-463425.html

 select embarked,s_count/all_count as s_percent from 
(select embarked,count(*) as s_count from tidanic where survivied=1 group by embarked) as a 
join (select count(*) as all_count from tidanic where survivied=1) as b on 1=1;

到了这里,关于基于用Hive泰坦尼克号乘客信息存储与分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 泰坦尼克号幸存者预测

    本文所有的代码及数据均存放与https://github.com/MADMAX110/Titanic 泰坦尼克号幸存者预测挑战赛是一个非常受欢迎的机器学习实践项目。这是 Kaggle.com 上最受欢迎的比赛之一。 数据中有3个文件:train.csv,test.csv,和gender_submit .csv。 train.csv包含一部分乘客的详细信息。 test.csv没有显示

    2024年02月08日
    浏览(45)
  • 泰坦尼克号可视化数据分析报告

    上一节已经用用逻辑回归算法预测泰坦尼克号人员存活情况,但是不了解什么样的人容易存活;因此,用数据分析方法继续探究数据背后隐藏的秘密,并用数据可视化方法展示出来。 目录 提出问题 理解数据 采集数据 导入数据 查看数据 数据清洗 数据处理 幸存率与家庭类别

    2024年02月11日
    浏览(43)
  • 【机器学习kaggle赛事】泰坦尼克号生存预测

    目录 写在前面  数据集情况查看 数据清洗 Embarked: Fare Age Cabin  特征工程 1,探究Sex与Survived的相关性  2,探究Pcalss与Survived的关联性  3,Embarked:不同的上船地点对生存率是否有影响  ​4,Name与Survived的相关性  5,Cabin与Survived之间的相关性 6,探究孤身一人和有家人陪伴的

    2023年04月23日
    浏览(36)
  • Kaggle实战入门:泰坦尼克号生还预测(进阶版)

    Kaggle实战入门:泰坦尼克号生还预测(基础版)对机器学习的全流程进行了总体介绍。本文继续以泰坦尼克号生还预测为例,对机器学习中的特征工程、模型构建进行深入解读。 数据集及代码下载 由于针对训练数据集、测试数据集均要做空值填充、编码转换、离散化、归一

    2024年02月02日
    浏览(29)
  • 深度学习项目:泰坦尼克号生存预测【附完整源码】

    数据处理 建立模型 训练模型 评估模型 模型预测 保存模型 数据文件: 2.1 泰塔尼克号数据 数据描述: RMS 泰坦尼克号的沉没是历史上最为人熟知的海难事件之一。 1912 年 4 月 15 日,在她的处女航中,泰坦尼克号在与冰山相撞后沉没,在船上的 2224 名乘客和机组人员中,共造

    2024年02月09日
    浏览(40)
  • 极简sklearn-使用决策树预测泰坦尼克号幸存者

    泰坦尼克号幸存者数据集是kaggle竞赛中入门级的数据集,今天我们就来用决策树来预测下哪些人会成为幸存者。 数据集下载地址: https://download.csdn.net/download/ting4937/87630361  数据集中包含两个csv文件,data为训练用数据,test为测试集。 首先我们通过pandas来读取并查看数据 数据如

    2024年02月04日
    浏览(68)
  • 机器学习实战(入门级) ------ Kaggle 泰坦尼克号幸存者预测 (随机森林,KNN,SVM)

    本篇将注重于机器学习预测模型的过程、数据分析以及项目实战落地。对于各种所使用的算法直接调用sklearn包,在这里不会说算法的原理和过程。有想看原理和过程的可以看我这两天整理的学习笔记。 KNN K邻近 学习笔记 各种聚类 学习笔记 决策树与随机森林 学习笔记 SVM 支

    2024年02月03日
    浏览(40)
  • 泰坦尼克号沉船数据分析与可视化、数据建模与分类预测【Python | 机器学习-Sklearn】

    前言:泰坦尼克号,不只是卡梅隆导演的经典电影,它是一个真实存在的悲剧,也是电影的故事背景与题材。作为一个IT人,分析事实还得看数据,了解到泰坦尼克号沉船幸存者多为老人、小孩和妇女,而牺牲者多为年轻的男士,这样的历史数据,让我感受到了人性之美与善

    2024年02月02日
    浏览(37)
  • 泰坦尼克沉船存活率(机器学习,Python)

    目录 1,实验要求: 2,报告内容 引言 数据处理 导入数据 查看数据集信息 数据清洗  特征工程 特征提取 特征选择 生还率预测说明 模型构建 建立训练数据集和测试数据集  选择不同的机器学习算法 训练模型,评估模型  方案实施 生存预测 参数调优 结论 改进方法 详细描

    2024年02月03日
    浏览(26)
  • 【从零开始学Kaggle竞赛】泰坦尼克之灾

    注册kaggle账号后,进入titanic竞赛界面 https://www.kaggle.com/competitions/titanic 进入后界面如下 Overview部分为竞赛整体介绍,包括竞赛介绍以及结果评估。 Data部分为数据集介绍,介绍使用的数据集。 Code部分为提交的代码 泰坦尼克号的沉没是历史上最臭名昭著的沉船事故之一。 19

    2024年02月13日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包