当前位置: 首页 > news >正文

基于hive数据库的泰坦尼克号幸存者数据分析

进入

./beeline -u jdbc:hive2://node2:10000 -n root -p

查询

SHOW TABLES;

删除

DROP TABLE IF EXISTS tidanic;

上传数据

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

《泰坦尼克号幸存者数据分析》

1、原始数据介绍

泰坦尼克号是当时世界上体积最庞大、内部设施最豪华的客运轮船,有“永不沉没”的美誉。然而不幸的是,在它的处女航中,泰坦尼克号便遭厄运——它从英国南安普敦出发驶向美国纽约。

(1)列名介绍

PassengerID->乘客ID
Survived->是否生还
Pclass->船舱级别
Name->姓名
Sex->性别
Age->年龄
SibSp->兄弟姐妹与配偶的总数
Parch->父母和孩子的总数
Ticket->船票ID
Fare->票价
Cabin->舱室
Embarked->出发港口

(2)经过数据清洗后字段之间分隔符为‘\t’, 集合之间分隔符为‘,’ 数据数目:891 条 创建原始表 tidanic

2、 创建数据库并进入数据库

create database if not exists mytrain;use mytrain;

3、创建源表

create table tidanic(
passengerid int,
survived 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 ',';

在这里插入图片描述

在这里插入图片描述

(1)通过HDFS命令导入数据到指定路径。

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

在这里插入图片描述

(2)查看前5行,检查是否导入成功。

select * from tidanic limit 5;

在这里插入图片描述

4、静态分区表

(1)创建静态分区表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 ',';

在这里插入图片描述

(2)导入数据到静态分区表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、动态分区表

(1)创建动态分区表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 ',';

在这里插入图片描述

(2)设置动态分区配置

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

在这里插入图片描述

(3)往动态分区表中插入数据

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

在这里插入图片描述

在这里插入图片描述

6、分桶表

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

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

在这里插入图片描述在这里插入图片描述

(2)修改桶表配置

set hive.enforce.bucketing=true;

在这里插入图片描述

(3)往桶表中插入数据

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

在这里插入图片描述

(4)抽取桶1开始两个桶的数据到抽样表tidanic_sample中,

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

在这里插入图片描述在这里插入图片描述

7、数据导出

将分区标数据导出到文件夹‘/export_dir2’

export table tidanic_dynamic_part to '/user/hive/export_dir2';

在这里插入图片描述在这里插入图片描述

8、外部表

(1)创建外部表,位置位于’/user/hive/warehouse/titanic_external’,字符之间’,'隔开

CREATE EXTERNAL TABLE titanic_external (
passengerid int,
survived 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 ','
LOCATION '/user/hive/warehouse/titanic_external';

在这里插入图片描述

(2)载入数据

LOAD DATA INPATH '/train.csv' INTO TABLE titanic_external;

在这里插入图片描述

(3)查看表的结构

DESCRIBE FORMATTED titanic_external;

在这里插入图片描述

9、DDL操作

①显示表名t的数据表

在这里插入图片描述

②将数据库中titanic_external表的名字改为titanic_ex;

在这里插入图片描述在这里插入图片描述

③删除数据表titanic_ex;

DROP TABLE titanic_ex;

在这里插入图片描述

10、查询插入

所有年龄大于等于 20 岁的乘客数据插入到另一个表 titanic_cc中

INSERT INTO TABLE titanic_cc
SELECT *
FROM titanic_external
WHERE Age >= 20;

在这里插入图片描述
在这里插入图片描述

11、分组过滤排序查询

(1)过滤查询(WHERE):查询所有幸存下来的男性乘客。

SELECT *   FROM tidanic   WHERE sex = 'male' AND survived = 1;

在这里插入图片描述
在这里插入图片描述

(2)分组查询(GROUP BY):按船票等级(pclass)统计乘客数。

SELECT pclass, COUNT(*) AS num_passengers   FROM tidanic   GROUP BY pclass;

在这里插入图片描述

在这里插入图片描述

(3)排序查询(ORDER BY):按船票费用(fare)从高到低排序乘客。

SELECT *   FROM tidanic   ORDER BY fare DESC;

在这里插入图片描述在这里插入图片描述

(4)组合过滤、分组和排序:查询所有幸存下来的女性乘客,并按年龄(age)从低到高排序。

SELECT *   FROM tidanic   WHERE sex = 'female' AND survived = 1   ORDER BY age ASC;

在这里插入图片描述
在这里插入图片描述

(5)内置函数 - 数学函数:计算乘客年龄的标准差。

SELECT STDDEV(Age) AS age_stddev
FROM tidanic;

在这里插入图片描述
在这里插入图片描述

(6)内置函数 - 条件函数: 使用CASE语句将乘客分为成年人和未成年人,并计算各自的数量。

SELECTSUM(CASE WHEN Age >= 18 THEN 1 ELSE 0 END) AS adult_count,SUM(CASE WHEN Age < 18 THEN 1 ELSE 0 END) AS minor_count
FROM tidanic;

在这里插入图片描述在这里插入图片描述

12、抽样查询

从tidanic中随机选择大约10%的行

SELECT *  FROM tidanic  TABLESAMPLE(BUCKET 1 OUT OF 10 ON RAND()) s;

在这里插入图片描述
在这里插入图片描述

13、事务表

开启事务

set hive.support.concurrency = true; 
set hive.enforce.bucketing = true;
set hive.exec.dynamic.partition.mode = nonstrict; 
set hive.txn.manager = org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; 
set hive.compactor.initiator.on = true; 
set hive.compactor.worker.threads = 1; 

在这里插入图片描述

创建表

CREATE TABLE titanic_transactional (  passengerid int,
survived int,
pclass int,
name string,
sex string,
age int,
sibsp int,
parch int,
ticket string,
fare double,
cabin String,
embarked String)  STORED AS ORC  TBLPROPERTIES ('transactional'='true');

在这里插入图片描述

从原表把数据插入事务表

INSERT INTO TABLE titanic_transactional  SELECT * FROM  tidanic;

在这里插入图片描述在这里插入图片描述

更新所有年龄大于60的乘客的survived字段为0(表示未幸存)

UPDATE titanic_transactional   SET survived = 0   WHERE age > 60;

在这里插入图片描述

SELECT * FROM titanic_transactional WHERE age < 20;

在这里插入图片描述

删除所有年龄小于20的乘客记录

DELETE FROM titanic_transactional WHERE age < 20;

在这里插入图片描述

SELECT * FROM titanic_transactional WHERE age < 20;

在这里插入图片描述

分析与总结:

使用python把筛选出的数据进行数据分析可得到如下
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

  • 女性幸存率约为75%,远高于男性的20%左右。这表明在紧急情况下,女性更容易得到救援。
  • 头等舱乘客的幸存率最高,达到了63%,而三等舱乘客的幸存率最低,仅为24%。这表明社会地位和经济条件对幸存率有显著影响。
  • 在各个船舱等级中,女性的幸存率均高于男性。然而,头等舱男性的幸存率仍然高于三等舱女性的幸存率,这进一步强调了社会地位对幸存率的重要性。
  • 与家人同行的乘客往往更容易幸存,因为他们可以相互帮助和照顾。

相关文章:

基于hive数据库的泰坦尼克号幸存者数据分析

进入 ./beeline -u jdbc:hive2://node2:10000 -n root -p 查询 SHOW TABLES; 删除 DROP TABLE IF EXISTS tidanic; 上传数据 hdfs dfs -put train.csv /user/hive/warehouse/mytrain.db/tidanic 《泰坦尼克号幸存者数据分析》 1、原始数据介绍 泰坦尼克号是当时世界上…...

excel根据数据批量创建并重命名工作表

需求 根据一列数据&#xff0c;批量创建并重命名工作表 做法 1. 右键该sheet&#xff0c;选择查看代码 2. 输入VBA代码 正向创建 Sub create_sheets_by_col()Dim num% 定义为integer*num Application.WorksheetFunction.CountA(Sheet1.Range("A:A")) num是非空…...

智能合约和分布式应用管理系统:技术革新与未来展望

引言 随着区块链技术的不断发展&#xff0c;智能合约和分布式应用&#xff08;DApps&#xff09;逐渐成为数字经济中的重要组成部分。智能合约是一种自执行的协议&#xff0c;能够在预设条件满足时自动执行代码&#xff0c;而无需人工干预或中介机构。这种自动化和信任机制极大…...

Spring MVC 中的拦截器的使用“拦截器基本配置” 和 “拦截器高级配置”

1. Spring MVC 中的拦截器的使用“拦截器基本配置” 和 “拦截器高级配置” 文章目录 1. Spring MVC 中的拦截器的使用“拦截器基本配置” 和 “拦截器高级配置”2. 拦截器3. Spring MVC 中的拦截器的创建和基本配置3.1 定义拦截3.2 拦截器基本配置3.3 拦截器的高级配置 4. Spr…...

MyBatis框架学习笔记(四):动态SQL语句、映射关系和缓存

1 动态 SQL 语句-更复杂的查询业务需求 1.1 动态 SQL-官方文档 &#xff08;1&#xff09;文档地址: mybatis – MyBatis 3 | 动态 SQL &#xff08;2&#xff09;为什么需要动态 SQL 动态 SQL 是 MyBatis 的强大特性之一 使用 JDBC 或其它类似的框架&#xff0c;根据不同条…...

【C++PythonJava】字符处理详细解读_字符_ASCLL码_字母数字转换_算法竞赛_开发语言

文章目录 Beginning1&#xff09;ASCLL 码2&#xff09;大小比较2&#xff09;判断数字字符3&#xff09;字符、数字间的相互转换End Beginning 在 C 中&#xff0c;字符和整数有着密不可分的关系。原因就是在计算机中&#xff0c;字符是以一种较 ASCLL 码的整数存储的。自然&…...

人像视频淡入淡出效果的灵敏检验方法

在视频中经常会有淡入淡出的效果&#xff0c;这可能导致人脸检测在实际人已经离开画面之后仍然触发&#xff0c;特别是在使用基于像素强度变化的检测算法时。为了更精确地裁剪视频&#xff0c;你可以尝试以下几种方法&#xff1a; 使用更复杂的人脸检测模型&#xff1a; 有些…...

Unity UGUI Image Maskable

在Unity的UGUI系统中&#xff0c;Maskable属性用于控制UI元素是否受到父级遮罩组件的影响。以下是关于这个属性的详细说明和如何使用&#xff1a; Maskable属性 Maskable属性&#xff1a; 当你在GameObject上添加一个Image组件&#xff08;比如UI面板或按钮&#xff09;时&…...

SpringCloud | 单体商城项目拆分(微服务)

为什么要进行微服务拆分&#xff1f; 在平常的商城项目中&#xff0c;我们一般的项目结构模块都是将各种业务放在同一个项目文件夹&#xff0c;比如像&#xff1a; 用户&#xff0c;购物车&#xff0c;商品&#xff0c;订单&#xff0c;支付等业务都是放在一起&#xff0c;这样…...

uniapp 如何实现路由拦截,路由守卫

uniapp框架的全局文件&#xff1a;page.json全局文件&#xff0c;官网链接 背景&#xff1a; 通过封装 UniApp 的路由方法&#xff0c;并在封装方法中添加自定义逻辑&#xff0c;可以实现类似 Vue Router 的路由守卫功能。 在 UniApp 框架中&#xff0c;不像 Vue Router 直接支…...

人工智能算法工程师(中级)课程13-神经网络的优化与设计之梯度问题及优化与代码详解

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能算法工程师(中级)课程13-神经网络的优化与设计之梯度问题及优化与代码详解。 文章目录 一、引言二、梯度问题1. 梯度爆炸梯度爆炸的概念梯度爆炸的原因梯度爆炸的解决方案 2. 梯度消失梯度消失的概念梯度…...

Qt/QML学习-ComboBox

QML学习 ComboBox例程视频讲解代码 main.qml import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.15Window {width: 640height: 480visible: truetitle: qsTr("ComboBox")ComboBox {id: comboBox// 列表项数据模型model: ListModel {List…...

微服务实战系列之玩转Docker(一)

前言 话说计算机的“小型化”发展&#xff0c;历经了大型机、中型机直至微型机&#xff0c;贯穿了整个20世纪的下半叶。同样&#xff0c;伴随着计算机的各个发展阶段&#xff0c;如何做到“资源共享、资源节约”&#xff0c;也一直是一代又一代计算机人的不懈追求和历史使命。今…...

Java中常见的语法糖

文章目录 概览泛型增强for循环自动装箱与拆箱字符串拼接枚举类型可变参数内部类try-with-resourcesLambda表达式 概览 语法糖是指编程语言中的一种语法结构&#xff0c;它们并不提供新的功能&#xff0c;而是为了让代码更易读、更易写而设计的。语法糖使得某些常见的编程模式或…...

数据库使用SSL加密连接

简介 数据库开通SSL加密连接是确保数据传输过程中安全性的关键措施&#xff0c;它通过加密数据、验证服务器身份、保护敏感信息、维护数据完整性和可靠性&#xff0c;同时满足行业标准和法规要求&#xff0c;进而提升用户体验和信任度&#xff0c;为企业的数据安全和业务连续性…...

华为OD算法题汇总

60、计算网络信号 题目 网络信号经过传递会逐层衰减&#xff0c;且遇到阻隔物无法直接穿透&#xff0c;在此情况下需要计算某个位置的网络信号值。注意:网络信号可以绕过阻隔物 array[m][n]&#xff0c;二维数组代表网格地图 array[i][j]0&#xff0c;代表i行j列是空旷位置 a…...

服务器的rabbitmq的guest账号登不进去

要配置 RabbitMQ 允许 guest 账号从非 localhost 地址登录&#xff0c;需要执行以下步骤&#xff1a; 编辑 RabbitMQ 配置文件&#xff1a; 打开 RabbitMQ 的配置文件&#xff0c;通常位于 /etc/rabbitmq/rabbitmq.conf 或者 /etc/rabbitmq/rabbitmq-env.conf。如果这些文件不存…...

决策树(ID3,C4.5,C5.0,CART算法)以及条件推理决策树R语言实现

### 10.2.1 ID3算法基本原理 ### mtcars2 <- within(mtcars[,c(cyl,vs,am,gear)], {am <- factor(am, labels c("automatic", "manual"))vs <- factor(vs, labels c("V", "S"))cyl <- ordered(cyl)gear <- ordered…...

文心一言《使用手册》,文心一言怎么用?

一、认识文心一言 &#xff08;一&#xff09;什么是文心一言 文心一言是百度研发的 人工智能大语言模型产品&#xff0c;能够通过上一句话&#xff0c;预测生成下一段话。 任何人都可以通过输入【指令】和文心一言进行对话互动、提出问题或要求&#xff0c;让文心一言高效地…...

Spring Boot集成qwen:0.5b实现对话功能

1.什么是qwen:0.5b&#xff1f; 模型介绍&#xff1a; Qwen1.5是阿里云推出的一系列大型语言模型。 Qwen是阿里云推出的一系列基于Transformer的大型语言模型&#xff0c;在大量数据&#xff08;包括网页文本、书籍、代码等&#xff09;进行了预训练。 硬件要求&#xff1a;…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

基于Flask实现的医疗保险欺诈识别监测模型

基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施&#xff0c;由雇主和个人按一定比例缴纳保险费&#xff0c;建立社会医疗保险基金&#xff0c;支付雇员医疗费用的一种医疗保险制度&#xff0c; 它是促进社会文明和进步的…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

基于PHP的连锁酒店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...