大数据(3d)HIVE基础操作

Hive基本操作 在删除表的时候,内部表的元数据和数据会被一起删除, 而外部表只删除元数据,不删除数据。例如,table总bucket数为32,tablesample(bucket 3 out of 16),表示总共抽取(32/16=)2个bucket的数据,分别为第3个bucket和第(3+16=)19个bucket的数据。创建表分区,在Hive中创建一个分区表goods,包含goods_id和goods_status两个字段,字符类型为string,分区为cat_id,字符类型为string,以“\t“为分隔符。 阅读详情

1、注释方法

SHOW  -- 这是注释
DATABASES;

2、库操作

-- 建库
CREATE DATABASE IF NOT EXISTS school
LOCATION '/school';  -- 文件夹在HDFS的位置
-- 查看有什么库
SHOW DATABASES;
-- 查看指定库
DESC DATABASE school;
-- 切换库
USE school;
-- 删库
DROP DATABASE school CASCADE;

3、建表主要语法

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] 表名
[(列名 数据类型 [COMMENT 列注释], ...)]
[COMMENT 表注释]
[PARTITIONED BY (分区列名 数据类型 [COMMENT 列注释], ...)]
[ROW FORMAT]
    [DELIMITED FIELDS TERMINATED BY 字段分隔]
    [COLLECTION ITEMS TERMINATED BY char 数组分隔]
    [MAP KEYS TERMINATED BY 键值分隔]
    [LINES TERMINATED BY 行分隔]
[STORED AS 数据存储格式]
[LOCATION HDFS路径]
[TBLPROPERTIES(property_name=property_value, ...)]
[AS 查询语句(根据查询结果创建表)]
[LIKE 表名(只复制表结构)]

4、管理表 & 外部表

英文名MANAGED_TABLEEXTENDED_TABLE
中文名管理表外部表
主要区别删表时 全删删表时 只删元数据
应用场景中间表、结果表原始表
创建方式默认EXTENDED
-- 创建 管理表
CREATE TABLE
school.student1 (age INT) LOCATION '/school/student1';
-- 创建 外部表
CREATE EXTERNAL TABLE
school.student2 (age INT) LOCATION '/school/student2';

建表后,MySQL处可查到

删表前

-- 删表
DROP TABLE school.student1;
DROP TABLE school.student2;

删表后,外部表还在

5、分区表

  • 分区表是对应一个HDFS上的独立文件夹
  • 查询时可以加WHERE,效率高

1、创建分区表

DROP TABLE IF EXISTS school.student;  --删表
CREATE TABLE school.student (s_id INT)
PARTITIONED BY (grade STRING)  --分区表
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','  --行格式
LOCATION '/school/student'  -- 数据在HDFS的存放位置
;

2、插入数据

INSERT INTO TABLE school.student VALUES (1,'a');
INSERT INTO TABLE school.student VALUES (2,'a');
INSERT INTO TABLE school.student VALUES (3,'b');

3、查询分区

SHOW PARTITIONS school.student;

4、查询加WHERE

SELECT * FROM school.student WHERE grade='a';

5、查看HDFS

6、常用数据类型

常用数据类型名称建表示例值示例范围
字符串STRING
整数INT-2,147,483,648 to 2,147,483,647
日期DATE'2016-11-21'0000-­01-­01 to 9999-­12-­31
时间戳TIMESTAMP'2018-6-11 8:30:00'
数组ARRAYARRAY<STRING>["ab","cd"]
键值对MAPMAP<STRING,INT>{"k1":3,"k2":2}
小数DECIMALDECIMAL(3,2)1.23

1、建库、删表建表

--建库
CREATE DATABASE IF NOT EXISTS school LOCATION '/school';
DROP TABLE IF EXISTS school.student;  --删表
CREATE TABLE IF NOT EXISTS school.student  --默认创建 管理表
(
  s_id    INT,            --学号
  s_name  STRING,         --姓名
  birth   DATE,           --生日
  s_time  TIMESTAMP,      --入学时间
  course  ARRAY<STRING>,  --课程
  score   MAP<STRING,INT> --成绩
)
LOCATION '/school/student'  -- 数据在HDFS的存放位置
;

2、查看表信息

SHOW CREATE TABLE school.student;

3、插入数据

INSERT INTO TABLE school.student VALUES(
1001,
'a1',
'1994-1-1',
'2020-1-1 8:30:00',
ARRAY('math','physics'),
MAP('math',6,'physics',7)
);

4、查询结果

7、数据导入

主要方法说明可用场景
LOAD DATA整个文件导入HDFS导入HIVE数仓原始层
INSERT查询数据插到目标表数仓内部增量导入
CREATE使用查询语句建表数仓应用层

7.1、导入文件模式

区别LOCAL模式非LOCAL模式
数据源从本地从HDFS
文件操作复制移动(源文件会被删)
适用场景入门练习企业生产

1、本地数据准备

vi /root/student.txt
1001,a,1994-1-1,2018-6-11 12:30:00,math_physics,math:7_physics:9
1003,a,1992-11-2,2016-7-11 8:30:00,math_physics,math:8_physics:9
1002,b,1993-3-3,2017-11-1 9:00:00,math_chemistry,math:8_chemistry:6

2、建表

DROP TABLE IF EXISTS school.student;  --删表
CREATE TABLE IF NOT EXISTS school.student
(
  s_id    INT              COMMENT "学号",
  grade   STRING           COMMENT "班级",
  birth   DATE             COMMENT "生日",
  s_time  TIMESTAMP        COMMENT "入学时间",
  course  ARRAY<STRING>    COMMENT "课程",
  score   MAP<STRING,INT>  COMMENT "成绩"
)
COMMENT "学生信息表"
ROW FORMAT --行格式
    DELIMITED FIELDS TERMINATED BY ','  --字段间分割符
    COLLECTION ITEMS TERMINATED BY '_'  --数组内分隔符
    MAP KEYS TERMINATED BY ':'          --键值对分隔符
LOCATION '/school/student'  -- 数据在HDFS的存放位置
;

3、数据导入,LOCAL为本地

LOAD DATA  -- 数据导入
LOCAL  -- 从本地导入,去掉就是默认从HDFS
INPATH '/root/student.txt'  -- 数据来源
OVERWRITE  --覆盖写入,不写的话默认追加
INTO TABLE school.student;

4、查看:文件位置、文件名、表内容

7.2、INSERT模式

1、续上面数据,创建一张按grade分区的表

DROP TABLE IF EXISTS school.student2;  --删表
CREATE TABLE IF NOT EXISTS school.student2 (
  s_id    INT              COMMENT "学号",
  birth   DATE             COMMENT "生日",
  s_time  TIMESTAMP        COMMENT "入学时间",
  course  ARRAY<STRING>    COMMENT "课程",
  score   MAP<STRING,INT>  COMMENT "成绩"
) COMMENT "学生信息表"  --表的注释
PARTITIONED BY (grade STRING)  --分区表
ROW FORMAT --行格式
    DELIMITED FIELDS TERMINATED BY ','  --字段间分割符
    COLLECTION ITEMS TERMINATED BY '_'  --数组内分隔符
    MAP KEYS TERMINATED BY ':'          --键值对分隔符
LOCATION '/school/student2'  -- 数据在HDFS的存放位置
;

2、数据导入

INSERT
OVERWRITE  --OVERWRITE覆盖写入,INTO追加
TABLE school.student2  --数据目的地
PARTITION(grade='a')  --分区
SELECT s_id,birth,s_time,course,score FROM school.student WHERE grade='a';
INSERT
OVERWRITE  --OVERWRITE覆盖写入,INTO追加
TABLE school.student2  --数据目的地
PARTITION(grade='b')  --分区
SELECT s_id,birth,s_time,course,score FROM school.student WHERE grade='b';

3、查看

7.3、CREATE模式

DROP TABLE IF EXISTS school.student3;
CREATE TABLE school.student3
AS SELECT s_id,score from student WHERE course[1]='physics';

查询SELECT * FROM school.student3;

字节跳动面试题目大数据计算引擎:impala对比hive,Python开发自学技巧 使用相同的存储数据池都支持把数据储于HDFS, HBase。两者使用相同的元数据。SQL解释处理比较相似都是通过词法分析生成执行计划。: 依赖于MapReduce执行框架,执行计划分成map->shuffle->reduce->map->shuffle->reduce…的模型。如果一个Query会被编译成多轮MapReduce,则会有更多的写中间结果。由于MapReduce执行框架本身的特点,过多的中间过程会增加整个Query的执行时间。 阅读详情

相关推荐

大数据技术笔试题库--带答案

34、Hive建表时,数值列的字段类型选取decimal(x,y)与Float、double的区别,下列说法正确的是?12、在MapTask的Combine阶段,当处理完所有数据时,MapTask会对所有的临时文件进行一次(B)。16、Hive最重视的性能是可测量性、延展性、(B)和对于输入格式的宽松匹配性。19、按粒度大小的顺序,Hive数据被分为:数据库、数据表、(C)、桶。29、下列说法中,关于客户端从HDFS中读取数据的说法错误的是(C)。

m0_50736744的博客 7345

Hive sql常用语句整理

---------------------------------------------------------------------------------------------------- 数据库相关操作 Hive配置单元包含一个名为 default 默认的数据库. create database [if not exists] <database na...

少年单排,记录点滴 657

大数据开发的前景和就业如何?该如何去学习它?

2022最新MySQL知识精讲+mysql实战案例_零基础mysql数据库入门到高级全套教程_哔哩哔哩_bilibili​​www.bilibili.com/video/BV1iF411z7Pu?spm_id_from=333.788.b_636f6d6d656e74.12正在上传…重新上传取消https://link.zhihu.com/?target=https%3A//www.bilibili.com/video/BV1iF411z7Pu%3Fspm_id_from%3D333.788.b_636f6

m0_57290404的博客 861

Hive(三):查询

Hive数据查询:基本查询、Join语句、排序、分桶存储及抽样查询、常用查询函数

学习记录和总结 1万+

关于Selenium3在MicrosoftEdge浏览器中出现的问题

前言 最近在做web自动化测试,所用环境是java+selenium3.141.59+MicrosoftEdge(Chromium)浏览器。 在调试的过程中,出现了很多问题。比如selenium3在Edge浏览器中远程调用中,不支持addArguments方法等 问题 1.Edge浏览器弹窗问题 在测试过程中,会出现弹出窗提示 ...

zhucheng1994的博客 2203

部署资源管理系统chemx

资源管理系统的部署教程

weixin_40784215的博客 823

Hive OLAP多维聚合函数

OLAP多维聚合函数 Hive OLAP多维聚合函数是增强版的Group By语句。一般和Group By同时使用,用来进行多维分析。本文总结Hive三种常用的多维聚合函数:With Cube 任意维度聚合、Grouping Sets 指定维度聚合、With Rollup 层级维度聚合。 测试数据 -- 建表 create table student_scores( id int,...

王佩的优快云博客 4066

蓝牙6.0的‘新雷达’:Channel Sounding信道探测,真能比UWB更香吗?

本文探讨了蓝牙6.0的Channel Sounding信道探测技术在室内定位领域的应用潜力。通过与UWB技术的对比分析,揭示了其在成本、功耗和兼容性方面的优势,特别是在智能门锁、物品追踪等场景中的商业价值。Channel Sounding技术不仅具备亚米级精度,还能通过现有蓝牙设备实现零边际成本部署,为物联网应用提供了新的解决方案。

weixin_29288313的博客 333

Hive使用语句

连接语句 left outer join 和left join是一样的。 left join 包含左表的所有行。 排序 分区排序,全局排序, MapReduce中的内部排序 https://blog.youkuaiyun.com/qq_43192537/article/details/102293995 修改表字段类型 https://blog.youkuaiyun.com/glittledream/article/details/84789571 Alter table 表名 change column 原字段名称

doswynkfsw的博客 1963

SpringBoot使用mybatis-plus的自动代码生成器

一.SpringBoot使用mybatis-plus+自动代码生成 使用mybatis-plus可以自动帮我们生成通用的 controller,service,dao,mapper 二.加入依赖 <!-- MP 核心库 --> <dependency> <groupId>com.baomidou</groupId> <artif...

农民娃儿的博客 2267

3篇1章6节:R基础绘图之图形的保存和导出技巧

高质量图形导出是R语言用户在数据分析和科研工作中的重要技能。通过合理控制图形的分辨率、选择合适的颜色管理方案和文件格式,以及掌握批量保存图形的技巧,可以显著提升图形的展示效果和应用范围。这不仅有助于提高研究成果的展示质量,还能在各种专业场合中展现数据分析的精确性和美观性。

MD Code 1482

大数据综合实验(一)

本案例涉及数据预处理、存储、查询和可视化分析dengshuju 处理全流程所涉及的各种典型操作,涵盖Linux、MySQL、Hadoop、HBase、Hive、Sqoop、R、Eclipse等系统和软件的安装和使用方法。 实验环境搭建(1)     安装Linux系统:如果未安装,参照网页:http://dblab.xmu.edu.cn/blog/1589-2/(2)     安装Hadoop:如...

南歌的博客 2万+

手把手教你学Simulink--基于Simulink的开关磁阻电机电流斩波控制仿真建模

特点:定子和转子均由普通硅钢片叠压而成,没有永磁体或绕组在转子上。工作原理:利用转子旋转时不同位置的磁阻变化产生转矩。控制挑战:由于SRM的高度非线性和磁饱和效应,需要复杂的控制算法来优化性能。利用Simscape Electrical中的模块构建SRM的物理模型,配置参数如电阻、电感等。matlab深色版本% 添加SRM电机模块根据实际需求调整电机参数。通过上述步骤,我们简要介绍了如何基于Simulink进行开关磁阻电机的电流斩波控制仿真建模。

MHD0815的博客 306

基于hadoop+hive的全国天气大数据可视化平台

本文对基础的天气数据信息,进行采集和分析显得尤为必要。早在17世纪80年代,人类就进行了在气象大数据可视化方面的尝试,这次尝试来源于英国科学家埃德蒙·哈雷,凭借整理和计算大量数据的才能,哈雷绘制了世界上第一张载有海洋盛行风分布的气象图,以地图为依托,对信风的分布状况做了全球性的统计分析,并将分布状态生动的展现在世人面前,这也是有史可依的最早的气象数据可视化案例。气象服务的发展,以及气象数据量的快速增长,促使大数据技术在气象服务中发挥着举足轻重的作用,大数据的应用将为气象科学的不断发展提供新的思路和方法。

laoman456的博客 4193

深度学习+遥感:2025最新土地利用分类资源大全(数据集/论文/代码)

近年来,深度学习在遥感影像土地利用分类领域取得了突破性进展,从传统的农田、森林识别,到复杂的城市功能区划分,AI正在重新定义我们对地表覆盖的认知。无论是科研还是工程应用,高质量数据集、前沿算法和开源工具都是成功的关键。本文精心整理了2024年最值得关注的土地利用分类资源,包括:✅ 10+个权威数据集(覆盖全球、多分辨率、多光谱/雷达)✅ 15+篇顶会论文(CNN/Transformer/自监督学习等SOTA方法)✅ 6大开源工具箱(PyTorch/Keras实现,即拿即用)

hanfeng5268的博客 1314

从0玩转Mamba神经网络:理论+实战的保姆级教程

Mamba神经网络是一种基于状态空间模型(SSM)的高效序列处理架构,相比Transformer具有更快的推理速度和更低的内存消耗。本文提供从理论到实践的完整指南,详细讲解Mamba的工作原理、与Transformer的差异,并给出基于PyTorch的文本分类实战示例。教程包含环境配置、数据处理、模型搭建、训练评估全流程,展示了Mamba在IMDb情感分析任务中的应用。文章还探讨了Mamba的性能优势及进阶方向,为开发者提供了探索这一新兴技术的实用指南。通过阅读本文,读者可以快速掌握Mamba的核心概念并上

FJN110的博客 318

Hive基础学习

https://mp.weixin.qq.com/s?__biz=MzA3NDc3ODg1MQ==&mid=2653658331&idx=1&sn=798d6125c0b8609348dbe8de0329c222&chksm=84a5ad57b3d2244128aaa3088c8ad11053151d3377a5490c3f8e16c371a192abbc2f00...

2254

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

01 Hive SQL基础知识

本文主要讲的是一些Hive SQL的基础知识,希望能帮助到想要接触大数据分析和刚接触大数据分析的同学。实际永远比所见的复杂,但万丈高楼平地起,一切来源于基础。 关键字:初步了解sql每个关键字的功能 执行顺序/执行计划:看懂执行步骤,有助优化sql和排查sql执行遇到的问题 SQL优化/特殊运算/特殊函数:提高SQL的执行效率 补充知识:表结构处理语句/SQL书写规范/数据仓库基础知识

WAYDN412的博客 2911

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

大数据—hive

一、单选 1、以下表达式书写错误的是==( B )== A、year('2015-12-31 12:21') B、month(2015-10-31) C、day('2015-12-11') D、date_sub('2015-12-01',3) year(string date) month(string date) day(string date) date_sub(string startdate, int days) 都是string类型,要加引号 2、已知表test(name)的记录如下, t

即使是不成熟的尝试,也胜于从不执行的策略。 1481

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Hadoop大数据——用户行为分析Hive数据分析

1.本地数据集上传到数据仓库Hive 代码 1. cd /usr/local 2. ls 3. sudo mkdir bigdatacase 4. //这里会提示你输入当前用户(本教程是hadoop用户名)的密码 5. //下面给hadoop用户赋予针对bigdatacase目录的各种操作权限 6. sudo chown -R hadoop:hadoop ./bigdatacase 7. cd bigdatacase 8. //下面创建一个dataset目录,用于保存数据集

Luckly_smile的博客 3554

Hive分区表

1、为什么设立分区表 在大量数据需要查询时,虽然可以通过where进行筛选,但也是检索整个数据表后得到的结果。 而将一个大的数据集根据实际需要分割成各个小型数据集,再通过where选择需要查询的分区, 故而效率大大提高。 2、分区表实质 Hive中的分区是将一个文件分割成各个目录(文件)。 3、分区表语法 3.1建立分区表 create table 分区表名称( 字段名称1 数据类型, 字段名称2 数据类型, 。。。 字段名称n 数据类型 ) partitioned by(分区

weixin_44246850的博客 3791

大数据开发第一步:Hadoop基础学习

目前人工智能和大数据火热,使用的场景也越来越广,日常开发中前端同学也逐渐接触了更多与大数据相关的开发需求。因此对大数据知识也有必要进行一些学习理解。基础概念大数据的本质一、数据的存储:分布式文件系统(分布式存储)二、数据的计算:分部署计算基础知识学习大数据需要具备Java知识基础及Linux知识基础学习路线(1)Java基础和Linux基础(2)Hadoop的学习:体系结构、...

weixin_34004750的博客 134

【Hive】(二十三)简单几招教你如何解决 Hive 中小文件过多的问题_hive小文件过多(1)

一个交换机下split的至少的大小(这个值决定了多个交换机上的文件是否需要合并)#执行Map前进行小文件合并#===设置map输出和reduce输出进行合并的相关参数:#设置map端输出进行合并,默认为true#设置reduce端输出进行合并,默认为false#设置合并文件的大小#当输出文件的平均大小小于该值时,启动一个独立的MapReduce任务进行文件merge。

2401_84615960的博客 881

大数据入门框架Hadoop基础学习

目前人工智能和大数据火热,使用的场景也越来越广,日常开发中前端同学也逐渐接触了更多与大数据相关的开发需求。因此对大数据知识也有必要进行一些学习理解。 基础概念 大数据的本质 一、数据的存储:分布式文件系统(分布式存储) 二、数据的计算:分部署计算 基础知识 学习大数据需要具备Java知识基础及Linux知识基础 学习路线 (1)Java基础和Linux基础 (2)Hadoop的学...

大数据工程师 526

大数据工程师的入行学习,有个学习计划很最要?

从大数据工程师入手,从java基础开始学,毕竟编程基础是每个岗位都需要的,而且java的适用面是最广的,虽然现在python的势头很足,但相对java来说,python比较简单,只要java能熟练使用了,要学会python,两周的时间就没问题,从长远的职业规划来说,学习没有速成的方法,脚踏实地才是最重要的。 推荐下我自己建的大数据学习交流群:199427210,群里都是学大数据开发的,如果你...

qq_41842579的博客 428

大数据最新大数据HDFS集群运维之小文件统计_hdfs hive 目录大小统计,面试真题解析

【代码】大数据最新大数据HDFS集群运维之小文件统计_hdfs hive 目录大小统计,面试真题解析。

2401_84182318的博客 337
上一篇: 大数据(0b)离线数据仓库
下一篇: 大数据(3i)Sqoop安装和操作
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值