hive数据类型及转换「建议收藏」

hive数据类型及转换「建议收藏」hive数据类型及数据类型转换

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1 hive 数据类型

1.1 基本数据类型

对于 Hive 的 String 类型相当于数据库的 varchar 类型,该类型是一个可变的字符串,不过它不能声明其中最多能存储多少个字符,理论上它可以存储 2GB 的字符数。

在这里插入图片描述

1.2 集合数据类型

Hive 有三种复杂数据类型 ARRAY、MAP 和 STRUCT。ARRAY 和 MAP 与 Java 中的 Array 和 Map 类似,而 STRUCT 与 C 语言中的 Struct 类似,它封装了一个命名字段集合,复杂数据 类型允许任意层次的嵌套。

在这里插入图片描述

2 数据案例

创建本地测试文件 test.txt
songsong,bilibili,xiao song:18_xiaoxiao song:19,hongshangqu_beijing
yangyang,caicai_susu,xiao yang:18_xiaoxiao yang:19,chao yang_beijing

create table test(
name string,
friends array<string>,
children map<string, int>,
address struct<street:string, city:string> )
row format delimited fields terminated by ','
collection items terminated by '_'
map keys terminated by ':'
lines terminated by '\n';

字段解释:
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;

3 类型转换

Hive 的原子数据类型是可以进行隐式转换的,类似于 Java 的类型转换,例如某表达式
使用 INT 类型,TINYINT 会自动转换为 INT 类型,但是 Hive 不会进行反向转化,例如,某表
达式使用 TINYINT 类型,INT 不会自动转换为 TINYINT 类型,它会返回错误,除非使用 CAST
操作。
1)隐式类型转换规则如下
(1)任何整数类型都可以隐式地转换为一个范围更广的类型,如 TINYINT 可以转换成
INT,INT 可以转换成 BIGINT。 (2)所有整数类型、FLOAT 和 STRING 类型都可以隐式地转换成 DOUBLE。 (3)TINYINT、SMALLINT、INT 都可以转换为 FLOAT。 (4)BOOLEAN 类型不可以转换为任何其它的类型。
2)可以使用 CAST 操作显示进行数据类型转换
例如 CAST(‘1’ AS INT)将把字符串’1’ 转换成整数 1;如果强制类型转换失败,如执行
CAST(‘X’ AS INT),表达式返回空值 NULL。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190918.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Ubuntu9.10更新源「建议收藏」

    Ubuntu9.10更新源「建议收藏」1\网易debhttp://mirrors.163.com/ubuntu/karmicmainrestricteduniversemultiversedebhttp://mirrors.

    2022年7月4日
    25
  • mysql uniqueidentifier,sql-如何检查字符串是否为uniqueidentifier?

    mysql uniqueidentifier,sql-如何检查字符串是否为uniqueidentifier?sql-如何检查字符串是否为uniqueidentifier?是否有与IsDate或IsNumeric等效的uniqueidentifier(SQLServer)?还是有等同于(C#)TryParse的东西?否则,我将不得不编写自己的函数,但是我想确保自己没有重新发明轮子。我要介绍的场景如下:SELECTsomethingFROMtableWHEREIsUniqueidentifier…

    2025年10月8日
    3
  • 二叉树性质[通俗易懂]

    二叉树性质[通俗易懂]转载skywang12345 http://www.cnblogs.com/skywang12345/p/3576328.html树的介绍1.树的定义树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:(01)每个节点有零个或多个子

    2022年5月31日
    45
  • 深入理解static关键字

    深入理解static关键字提到static关键字,相信大家都不陌生,这是相对比较难以理解的一个关键字,相信各位也都能深深感受的到!本篇文章将好好总结一下static这个关键字。文章目录1、static存在的主要意义2、static的独特之处3、静态变量和实例变量的概念4、静态变量和实例变量【重点常用】5、static静态方法6、static代码块7、static应用场景1、static存在的主要意义static的主要…

    2025年6月5日
    4
  • IOS 语法 – 关于 NStimer 中 scheduledTimerWithTimeInterval方法传参的问题「建议收藏」

    IOS 语法 – 关于 NStimer 中 scheduledTimerWithTimeInterval方法传参的问题「建议收藏」使用NSTimerscheduledTimerWithTimeInterval:target:selector:userInfo:repeats:的时候有两个地方需要注意。首先select

    2022年7月1日
    69
  • 计算机网络原理(谢希仁第八版)第一章课后习题答案

    第一章1.计算机网络可以向用户提供哪些服务?答:例如音频,视频,游戏等,但本质是提供连通性和共享这两个功能。连通性:计算机网络使上网用户之间可以交换信息,好像这些用户的计算机都可以彼此直接连通一样。共享:指资源共享。可以是信息,软件,也可以是硬件共享。2.试简述分组交换的要点。答:采用了存储转发技术。把报文(要发送的整块数据数据)等分成若干数据段,每个数据段加入控制信息组成的首部(header),构成若干分组。因为分组首部包含了目的地址和原地址等重要控制信息,每个分组才可以在互联网中独立地选择传

    2022年4月8日
    556

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号