1.Hive基础

news2024/10/7 4:35:10

1.简介

作用:结构化数据映射为一张表,并提供类sql功能

本质:将HQL转化成MapReduce程序

(1)Hive处理的数据存储在HDFS ​

(2)Hive分析数据底层的实现是MapReduce ​

(3)执行程序运行在Yarn上

ps.  HDFS 不支持随机写,只支持追加写,所以在 Hive 中不能 update 和delete,能 select 和 insert

与数据库对比:

2.启动mysql

// 启动mysql
sudo systemctl start mysqld
// 登录mysql
mysql -uroot -p
// 退出mysql
exit

3.启动hive 

 3..1 前提准备:

// 先启动hadoop集群
my_hadoop start

hive的底层是基于hadoop的 

3.2 1 直接启动hive

[atguigu@hadoop101 ~]$ hive
hive> exit;

ps.开启方式简单,但是查询数据输出不规整 

3.2.2 通过jdbc启动hive

[atguigu@hadoop102 hive]$ 
         bin/beeline -u jdbc:hive2://hadoop101:10000 -n atguigu
jdbc:hive2://hadoop101:10000> !quit

ps.开启方式复杂,但是返回的数据很规整 

3.3.3 通过脚本启动hive 

[atguigu@hadoop101 bin]$ hiveservices.sh start | stop | restart| status

  ps.配置脚本的过程比较麻烦,还是了解一下即可 

4.数据类型

4.1 基本数据类型 

HivemysqlJAVAlength示例
TINYINTTINYINTbyte1byte有符号整数2
SMALINTSMALINTshort2byte有符号整数20
INTINTint4byte有符号整数20
BIGINTBIGINTlong8byte有符号整数20
BOOLEANboolean布尔类型,true或者falseTRUE FALSE
FLOATFLOATfloat单精度浮点数3.14159
DOUBLEDOUBLEdouble双精度浮点数3.14159
STRINGVARCHARstring字符系列。可以指定字符集。可以使用单引号或者双引号。‘now is the time’“
TIMESTAMPTIMESTAMP时间类型'2013-01-31 00:13:00.345’
BINARYBINARY字节数组1010

 ps.红标为常用的数据类型;

ps.对于Hive的String类型相当于数据库的varchar类型,该类型是一个可变的字符串.

4.2 集合数据类型

数据类型                                          示例描述
STRUCT例如,如果某个列的数据类型是STRUCT{first STRING, last STRING},那么第1个元素可以通过字段.first来引用。例如:struct<street:string, city:string>
MAP例如,如果某个列的数据类型是MAP,其中键->值对是’first’->’John’和’last’->’Doe’,那么可以通过字段名[‘last’]获取最后一个元素例如map<string, int>
ARRAY

例如,数组值为[‘John’, ‘Doe’],那么第2个元素可以通过

数组名[1]进行引用。

例如array<string>

例子:

1.hive下方有一个datas目录,在其中vim test.txt:

songsong,bingbing_lili,xiao song:18_xiaoxiao song:19,hui long guan_beijing
yangyang,caicai_susu,xiao yang:18_xiaoxiao yang:19,chao yang_beijing

ps.每一行的数据都包含了四种类型,分别是string,array,map,struct

2. 在hive上创建表

create table test(
name string,
friends array<string>,
children map<string, int>,
address struct<street:string, city:string>
)

3.数据分割(按照数据决定)

row format delimited fields terminated by ','  // 让每个字段按逗号分开
collection items terminated by '_'   // 集合(MAP STRUCT和ARRAY)的分隔符
map keys terminated by ':'     // MAP中的key与value的分隔符
lines terminated by '\n';      // 行分隔符(可以判断出是两行)

4.导入文本数据到测试表

load data local inpath '/opt/module/hive/datas/test.txt' into table test;

 5.访问数据

hive (default)> select name,friends[1],children['xiao song'],address.city
 from test where name="songsong";

查询结果:

                        

4.3 类型转换

1.规则:

(1)隐式转换

     任何整数类型都可以隐式地转换为一个范围更广的类型。

     如TINYINT可以转换成INT,INT可以转换成BIGINT。

    所有整数类型、FLOAT和.STRING类型的数字.都可以隐式地转换成DOUBLE。

    TINYINT、SMALLINT、INT都可以转换为FLOAT。

     BOOLEAN类型不可以转换为任何其它的类型。

(2)强制转换

         使用CAST操作。例如CAST(‘1’ as int)将把字符串’1’ 转换成整数1

2.示例

hive (default)> select '1' + 2, cast('1' as int) + 2;

_c0	   _c1
3.0	    3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/483094.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

keil5固件库版本的工程建立

keil5固件库版本的工程建立 一、一个文件夹&#xff0c;如图再建立4个文件夹 二、准库往上图四个文件夹里粘贴 从标准库里面把Libraries里面的两个文件夹全部复制到新建文件夹Libraries里面 三、来对新建的Libraries里面的两个文件夹进行更改 STM32F10x_StdPeriph_Driver这个…

ajax与json

title: 15 ajax与json date: ‘2023-3-29’ 从一个例子开始 传统的方式进行前后端交互是什么样子的&#xff1f; <% page language"java" contentType"text/html; charsetUTF-8"pageEncoding"UTF-8"%> <html> <head><me…

python cms建站教程:Wagtail建站(二、修改主页与自定义后台管理)

不得不说python的中文cms建站教程实在是太少了&#xff0c;直接用Django/Flask这样的框架从头开始写又实在是有点麻烦&#xff0c;自己摸索着写一点使用Wagtail建站的方法&#xff0c;仅供参考。Wagtail是一款基于Django框架的CMS建站工具&#xff0c;可以为你的网站提供一个比…

点赋科技:本地生活,如何开启复苏之路

目前&#xff0c;全球经历这场前所未有的疫情大流行已经结束&#xff0c;尽管许多国家和地区的经济和社会都受到了影响。然而&#xff0c;做好本地生活的复苏规划和推进&#xff0c;将有助于在疫情之后尽快走出经济低迷期&#xff0c;恢复社会活动和生活体验。点赋科技将阐述如…

初识MySQL数据库——“MySQL数据库”

各位CSDN的uu们你们好呀&#xff0c;小雅兰好久没有更文啦&#xff0c;确实是心有余而力不足&#xff0c;最近学习的内容太难了&#xff0c;这篇博客又是小雅兰的新专栏啦&#xff0c;主要介绍的是一些MySQL数据库的知识点&#xff0c;下面&#xff0c;让我们进入初识MySQL数据…

【黑马程序员 C++教程从0到1入门编程】【笔记8】 泛型编程——模板

https://www.bilibili.com/video/BV1et411b73Z?p167 C泛型编程是一种编程范式&#xff0c;它的核心思想是编写通用的代码&#xff0c;使得代码可以适用于多种不同的数据类型。 而模板是C中实现泛型编程的一种机制&#xff0c;它允许我们编写通用的代码模板&#xff0c;然后在需…

静态成员与友元函数

有缘 class Point {private:double x, y; public:Point(double xx, double yy) ;friend double Distance(Point &a, Point &b); };Point::Point(double xx, double yy) {x xx;y yy; }double Distance(Point &a, Point &b) {return sqrt(pow(a.x - b.x, 2) p…

【STM32CubeMX】F103定时中断

前言 本文记录下我学习STM32CubeMX时的流程&#xff0c;方便以后回忆。系统板是基于STM32F103C6T6。本章记录定时中断。 步骤 实验目标&#xff1a;利用定时器TIM2装载计数&#xff0c;1S的定时中断事件&#xff0c;事件是LED(PC13)的亮灭。 配置时钟源为外部高速源(HSE),流程…

MinIO分布式存储服务

一、前言 最近项目中使用到了MinIO的分布式存储系统&#xff0c;记录一下Minio服务的相关概念以及使用方法。 二、基本概念 MinIO 对象存储系统是为海量数据存储、人工智能、大数据分析而设计&#xff0c;基于Apache License v2.0 开源协议的对象存储系统&#xff0c;它完全…

【五一创作】【软考:软件设计师】 5 计算机组成与体系结构(三)认证技术 | 计算机可靠性

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 本文收录于软考中级&#xff1a;软件设计师系列专栏,本专栏服务于软考中级的软件设计师考试,包括不限于知识点讲解与真题讲解两大部分,并且提供电子教材与电子版真题,关注私聊即可 …

C++入门(保姆级教程)

目录 一、C关键字 二、命名空间 2.1 C语言中的命名冲突 2.2 C中命名空间 2.2.1 命名空间的定义 2.2.2 命名空间的特性 2.2.3 命名空间的使用 2.2.4 补充知识 2.2.4 C库的命名空间 三、C中的输入&输出 四、缺省参数 4.1 定义 4.2 缺省参数的分类 4.2.1 全缺…

Nacos—简述、注册中心、配置中心

目录 什么是Nacos&#xff1f; 什么是注册中心&#xff1f; 什么是配置中心&#xff1f; 什么是服务管理平台&#xff1f; Nacos的关键特性包括&#xff08;有点&#xff09;有哪些&#xff1f; 作用&#xff08;为什么要使用&#xff09;&#xff1f; 注册中心演变过程 …

业绩稳健增长,公牛集团新老业务如何实现齐头并进?

“插座一哥”公牛集团&#xff0c;正在经历其迈向更高质量发展的自我优化。 4月27日晚&#xff0c;公牛集团&#xff08;SH:603195&#xff09;发布了《2022年年度报告》及《2023年第一季度报告》。去年&#xff0c;宏观市场动荡&#xff0c;但公牛集团不仅保持了业绩的稳健增…

ChatGPT本地化部署教程-批量调用ChatGpt共享API key

ChatGPT本地化部署教程 chatGPT是一个基于自然语言处理的深度学习模型&#xff0c;能够生成自然流畅的文本&#xff0c;并且可以应用到多个场景中。与云服务相比&#xff0c;本地部署还可以提高模型的响应速度&#xff0c;进一步增加模型的便捷性和可用性。以下是基于 Docker …

uboot start.S中关于第一阶段的代码分析

u-boot.lds中找到start.S入口 (1)C语言规定整个项目的入口就是main函数。 (2)在uboot中因为有汇编阶段参与&#xff0c;因此不能直接找main.c。整个程序的入口取决于链接脚本中ENTRY声明的地方。ENTRY(_start)因此定义_start符号 的文件就是整个程序的起始文件&#xff0c;即st…

SpringBoot定义优雅全局统一Restful API 响应框架

假如现在有一个Java项目,老板让你做项目组长,定义项目基础框架,系统技术架构选型, 你应该如何设计一个规范的统一的Restful API 响应框架呢 思考 目前项目开发,都是基于前后端分离模式开发的,基于后端模板引擎那一套,可能已经不适用一些项目开发流程,和当下开发模式了,尤其在…

(五)Spring源码阅读:invokeBeanFactoryPostProcessors方法

一、概述 invokeBeanFactoryPostProcessors的执行顺序大致如下&#xff0c;先执行子类BeanDefinitionRegistryPostProcessor再执行父类BeanFactoryPostProcessor。而对于同一个类的执行顺序是先执行外部的集合再到子集&#xff0c;之后再到父集。更小维度执行的顺序按照order注…

WebSocket的那些事(1-概念篇)

目录 一、什么是Websocket二、WebSocket部分header介绍三、HTTP VS WebSocket四、什么时候使用WebSockets五、关于SockJS和STOMP 一、什么是Websocket 根据 RFC 6455 标准&#xff0c;Websocket协议提供了一种标准化的方式在客户端和服务端之间通过TCP连接建立全双工、双向通信…

【DarkLabel】使用教程(标注MOT数据集)

DarkLabel 使用教程 功能部分 Open video 第 2 处的内容为数据集类型。例如&#xff1a;VOC、COCO、MOT、YOLO等。 第 3 处的内容为标签名称。 可在 darklabel.yml 中修改 classes_set。例如&#xff1a;classes_set: "mot_classes" 第 4 处的内容为两种跟踪方法…

Maven项目的配置

Maven是什么&#xff1f;它的作用是什么&#xff1f; Maven是一种开源的构建工具&#xff0c;它可以自动化构建、测试、部署和管理Java项目。它提供了一个中心化的构建过程&#xff0c;包括依赖管理、项目结构管理、插件管理等&#xff0c;使得开发人员更方便地维护和协作应用…