当前位置: 首页 > 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;…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中&#xff0c;我们会遇到使用 java 调用 dll文件 的情况&#xff0c;此时大概率出现UnsatisfiedLinkError链接错误&#xff0c;原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用&#xff0c;结果 dll 未实现 JNI 协…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

什么是Ansible Jinja2

理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具&#xff0c;可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板&#xff0c;允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板&#xff0c;并通…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...