Hive数据类型

1.基本数据类型

在这里插入图片描述
示例:

-- 创建表并定义列的数据类型
CREATE TABLE data_types_example (
    tinyint_column TINYINT,
    smallint_column SMALLINT,
    int_column INT,
    bigint_column BIGINT,
    boolean_column BOOLEAN,
    float_column FLOAT,
    double_column DOUBLE,
    string_column STRING,
    timestamp_column TIMESTAMP,
    binary_column BINARY
);

-- 插入示例数据
INSERT INTO data_types_example VALUES
(1, 10, 100, 1000, TRUE, 3.14, 6.28, 'example', '2024-04-23 12:00:00', CAST('binary data' AS BINARY));

-- 查询示例数据
SELECT * FROM data_types_example;

  • 对于Hive的string类型相当于数据库的varchar类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它可以存储2GB的字符数。
  • 不同的数据类型具有不同的数据范围和存储大小。确保选择的数据类型可以容纳数据的范围,并且不会浪费过多的存储空间。

2.集合数据类型

Hive有三种复杂数据类型array、map和struct。array和map与Java中的array和map类似,而struct由一组称为成员的不同数据组成,其中每个成员可以具有不同的类型。

在这里插入图片描述

  1. ARRAY

    • ARRAY是一种有序的集合,其中的元素可以重复
    • 它用于存储具有相同数据类型的多个值,例如一组数字、字符串等。
    • ARRAY类型的语法为ARRAY<data_type>,其中data_type表示数组中元素的数据类型。
  2. MAP

    • MAP是一种键值对的集合,其中的键和值可以是任意数据类型
    • 它用于存储类似于字典或关联数组的数据结构。
    • MAP类型的语法为MAP<key_data_type, value_data_type>,其中key_data_type表示键的数据类型,value_data_type表示值的数据类型。
  3. STRUCT

    • STRUCT是一种类似于结构体或元组的数据类型,它可以包含多个字段,每个字段都有自己的数据类型
    • 它用于表示具有多个属性的复合数据类型。
    • STRUCT类型的语法为STRUCT<field1:data_type1, field2:data_type2, ...>,其中field1field2等表示字段名,data_type1data_type2等表示字段的数据类型。

  1. ARRAY 示例
    一个表存储了每位学生的课程成绩,其中每个学生可能修读了多门课程,我们可以使用ARRAY来表示每位学生的成绩列表。
CREATE TABLE student_grades (
    student_id INT,
    grades ARRAY<INT>
);

INSERT INTO student_grades VALUES
(1, ARRAY(85, 90, 75)),
(2, ARRAY(78, 82, 95)),
(3, ARRAY(88, 92, 80));
  1. MAP 示例
    一个表存储了每**位员工的基本信息,其中包括姓名、部门和工资等信息,**我们可以使用MAP来表示员工的基本信息。
CREATE TABLE employee_info (
    employee_id INT,
    info MAP<STRING, STRING>
);

INSERT INTO employee_info VALUES
(1, MAP('name', 'Alice', 'department', 'HR', 'salary', '5000')),
(2, MAP('name', 'Bob', 'department', 'Finance', 'salary', '6000')),
(3, MAP('name', 'Charlie', 'department', 'IT', 'salary', '7000'));
  1. STRUCT 示例
    一个表存储了商品的详细信息,包括商品ID、名称和价格,我们可以使用STRUCT来表示商品的详细信息。
CREATE TABLE product_details (
    product_id INT,
    details STRUCT<
        name: STRING,
        price: DOUBLE
    >
);

INSERT INTO product_details VALUES
(1, STRUCT('Laptop', 1200.50)),
(2, STRUCT('Smartphone', 800.25)),
(3, STRUCT('Tablet', 500.75));

3.数据类型转换

1.隐式转换

在Hive中,有时候可以进行隐式类型转换,这是指在查询中不需要显式地使用CAST函数,Hive会根据上下文自动进行类型转换。

  • (1)任何整数类型都可以隐式地转换为一个范围更广的类型,如tinyint可以转换成int,int可以转换成bigint。
  • (2)所有整数类型、float和string类型都可以隐式地转换成double。
  • (3)tinyint、smallint、int都可以转换为float。
  • (4)boolean类型不可以转换为任何其它的类型

示例:

  1. 整数类型转换
  • 在算术运算或比较操作中,如果参与运算的两个数类型不同,Hive会自动将小的整数类型转换为大的整数类型,例如将TINYINT转换为INT,INT转换为BIGINT。
SELECT 1 + 2.5; -- 将整数1隐式转换为浮点数,结果为3.5
  1. 字符串类型转换
  • 字符串拼接操作中,Hive会自动将非字符串类型转换为字符串类型
SELECT 'Age: ' || 25; -- 将整数25隐式转换为字符串,结果为'Age: 25'
  1. 布尔类型转换
  • 在逻辑运算中,Hive会自动将布尔类型转换为整数类型(0表示FALSE,1表示TRUE)
SELECT TRUE AND FALSE; -- 将布尔值转换为整数,结果为0
  1. 日期类型转换
  • 在日期运算中,Hive会根据上下文自动进行日期类型转换。
SELECT current_date() - '2024-04-23'; -- 将字符串日期转换为日期类型,然后计算日期差
  1. 浮点数类型转换
  • 在算术运算中,Hive会自动进行浮点数类型转换
SELECT 10 / 3.0; -- 将整数10隐式转换为浮点数,结果为3.33333...

2.显式转换

在Hive中,显式转换是指使用CAST函数明确指定将一个数据类型转换为另一个数据类型。

  • 语法:cast(expr as ) expr表示要转换的表达式,type表示要转换成的目标数据类型
  • 返回值:Expected “=” to follow “type”
  • 说明:返回转换后的数据类型

示例:

  1. 将字符串转换为整数
SELECT CAST('123' AS INT);
  1. 将整数转换为字符串
SELECT CAST(123 AS STRING);
  1. 将字符串表示的日期转换为日期类型
SELECT CAST('2024-04-23' AS DATE);
  1. 将日期类型转换为字符串表示
SELECT CAST(CURRENT_DATE() AS STRING);
  1. 将字符串转换为布尔类型
SELECT CAST('true' AS BOOLEAN);
  1. 将布尔类型转换为字符串
SELECT CAST(TRUE AS STRING);
  1. 将浮点数转换为整数
SELECT CAST(3.14 AS INT);
  1. 将整数转换为浮点数
SELECT CAST(100 AS FLOAT);
  1. 将时间戳转换为日期类型
SELECT CAST('2024-04-23 12:00:00' AS DATE);

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HSB矩形调色板设计和计算方法

HSB矩形调色板设计和计算方法 RGB调色板绘制较容易&#xff0c;HSB调色板较难绘制&#xff0c;前些天发文介绍了几个矩形样例的绘制方法&#xff0c;今介绍矩形的HSB调色板的设计方法和H,S,B值的计算方法&#xff0c;好东西必须与大家分享。 此文介绍HSB调色板和选色条的绘制方…

jdbc操作数据库 and 一个商品管理页面

文章目录 1. 介绍1.1 应用知识介绍1.2 项目介绍 2. 文件目录2.1 目录2.2 介绍以下&#xff08;从上到下&#xff09; 3. 相关代码3.1 DBConnection.java3.2 MysqlUtil.java3.3 AddServlet.java3.4 CommodityServlet.java3.5 DelectServlet.java3.6 SelectByIdServlet.java3.7 S…

Springboot 结合PDF上传到OSS

目录 一、首先注册阿里云OSS&#xff08;新用户免费使用3个月&#xff09; 二、步骤 2.1 将pdf模板上传到oos 2.2 这里有pdf地址,将读写权限设置为共工读 ​编辑 三、代码 3.1 pom.xml 3.2 配置文件 3.3 oss model 3.4 配置类(不需要修改) 3.5 将配置类放入ioc容器 3.…

【C++】:构造函数和析构函数

目录 前言一&#xff0c;构造函数**1.1 什么是构造函数****1.2 构造函数的特性**1.3 总结 二&#xff0c;析构函数**2.1 什么是析构函数****2.2 析构函数的特性****2.3 总结** 前言 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并…

JetBrains PhpStorm v2024.1 安装教程 (PHP集成开发IDE)

前言 PhpStorm是由JetBrains推出的一款轻量级集成开发环境&#xff0c;专为PHP开发者而设计。该软件融合了智能的HTML/CSS/JavaScript/PHP编辑器、代码质量分析工具、版本控制系统集成&#xff08;包括SVN和GIT&#xff09;、调试和测试等功能。除此之外&#xff0c;PhpStorm还…

画图的神器及必备的调色和选图工具

大学生研究生论文写作及画图的神器 前言常用的工具集合画图工具配色参考画图神器词云 最后下篇 前言 好久没有更博&#xff0c;来更一下吧。最近刚好被问到平常是用什么来画图的&#xff0c;包括会议论文&#xff0c;各种类型的PPT汇报以及项目报告等等里面的图怎么画好。所以…

CSS动画(css、js动画库:各种动画效果)

第一种方法&#xff1a;文字从上到下显示动画&#xff1b; <div class"text-container"><div class"text">文字从上到下显示</div></div><style scoped> /*确保 keyframes 规则在引用它的任何选择器之前定义&#xff0c;以避…

Linux服务器网络问题排查思路

服务器网络问题排查 一.测试是否能ping通其他服务器 ping <其他电脑的IP>如图是网段互通的情况 如图是不互通的情况 该命令是最常用的命令&#xff0c;主要功能如下&#xff1a; 网络连通性&#xff1a; ping 用于检查两台主机之间是否可以相互通信。如果目标主机可达…

DB索引B+树SQL优化

数据库的索引就像一本书的目录&#xff0c;查数据快人一步&#xff0c;快速定位&#xff0c;精准打击&#xff01; 什么是数据库的索引&#xff1f; 官方介绍索引是帮助MySQL高效获取数据的数据结构。更通俗的说&#xff0c;数据库索引好比是一本书前面的目录&#xff0c;能加…

invidia-smi占用显存,无法显示PID

如果是动用了子线程创建进程&#xff0c;比如利用accelerate训练脚本&#xff0c;那么大概率可以通过这种方式解决&#xff1a;nvidia-smi没有进程&#xff0c;但是显存占用_nvidia-smi有的卡是0%-CSDN博客 如果这种方法不可用&#xff0c;请尝试直接查询所有python进程&#x…

BI建设案例:FineBI大数据分析平台助力工程机械行业降本增效

工程机械行业作为国民经济的重要支柱&#xff0c;产品多样化、应用广泛&#xff0c;市场集中度高。其上游涉及原材料和核心零部件&#xff0c;下游则与房地产、基建工程和采矿等行业紧密相连。 如今&#xff0c;中国已崛起为全球工程机械制造大国&#xff0c;各类机械产品产量…

关于MCU核心板的一些常见问题

BGA植球与焊接&#xff08;多涂焊油&#xff09;&#xff1a; 【BGA芯片是真麻烦&#xff0c;主要是植锡珠太麻烦了&#xff0c;拆一次就得重新植】https://www.bilibili.com/video/BV1vW4y1w7oNvd_source3cc3c07b09206097d0d8b0aefdf07958 / NC电容一般有两种含义&#xff1…

Rust Tracing 入门

Tracing 是一个强大的工具&#xff0c;开发人员可以使用它来了解代码的行为、识别性能瓶颈和调试问题。 Rust 是一种以其性能和安全保证而闻名的语言&#xff0c;在它的世界中&#xff0c;跟踪在确保应用程序平稳高效运行方面发挥着至关重要的作用。 在本文中探讨Tracing 的概…

数据结构之顺序表的实现(C语言版)

Hello, 大家好&#xff0c;我是一代&#xff0c;今天给大家带来有关顺序表的有关知识 所属专栏&#xff1a;数据结构 创作不易&#xff0c;望得到各位佬们的互三呦 一.前言 1.首先在讲顺序表之前我们先来了解什么是数据结构 数据结构是由“数据”和“结构”两词组合⽽来。 什…

安全特低电压 SELV(Safety Extra Low Voltage,缩写SELV) 是不接地系统的安全特低电压

SELV LED驱动器 市场上有很多LED灯是非隔离的&#xff0c;甚至还有灯条要100多伏特电压才能点亮的&#xff0c;安全吗&#xff1f; 国外多数LED驱动器标注了SELV&#xff0c;为什么&#xff1f; 安全特低电压 SELV(Safety Extra Low Voltage&#xff0c;缩写SELV) 是不接地系…

谈谈前端CSS盒模型

前言&#xff1a; 什么是CSS盒模型&#xff1f;盒模型的构造&#xff1f; 在前端开发中&#xff0c;CSS 盒模型是一种非常基础且核心的概念&#xff0c;它描述了文档中的每个元素被框架处理的方式。 ---- 打开浏览器开发者工具&#xff0c;查看Elements右侧下的Styles底部。 …

上手GitHub Copilot让AI写代码,效率飞起!

1 GitHub Copilot介绍 GitHub Copilot 由 GitHub 和 OpenAI 共同开发的人工智能代码辅助工具&#xff0c;可自动地生成高质量代码片段、上下文信息等。通过自然语言处理和机器学习技术&#xff0c;通过分析程序员编写的代码、注释和上下文信息&#xff0c;自动生成代码&#x…

【JAVA】UDP与TCP套接字编程

目录 一、UDP数据报套接字编程 1、DatagramSocket API 2、DatagramPacket API 3、InetSocketAddress API 4、示例一 5、示例二 二、TCP流套接字编程 1、ServerSocket API 2、Socket API 3、TCP中的长短连接 4、示例一 5、示例二 一、UDP数据报套接字编程 1、Datag…

山岭隧道及道路3D建模教程【Blender】

创建具有恒定坡度的山路、隧道的信息和技术似乎散布在互联网上。 在这篇文章中&#xff0c;我将它们全部收集在一起。 这篇文章的大纲如下&#xff1a; 创建一座山创建一条路挖一条隧道 道路的坡度将固定为常数&#xff0c;从而消除颠簸。 NSDT工具推荐&#xff1a; Three.j…

yolo-驾驶行为监测:驾驶分心检测-抽烟打电话检测

在现代交通环境中&#xff0c;随着汽车技术的不断进步和智能驾驶辅助系统的普及&#xff0c;驾驶安全成为了公众关注的焦点之一 。 分心驾驶&#xff0c;尤其是抽烟、打电话等行为&#xff0c;是导致交通事故频发的重要因素。为了解决这一问题&#xff0c;研究人员和工程师们…