
hive
文章平均质量分 69
想做富婆
,
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hive:处理JSON格式(get_json_object()函数),连续登录题型,快速生成表(explode,stack),迭代计算
连续登录题型处理JSON格式Json格式的数据是由键值对组成的数据示例在对非结构化数据进行数据清洗时,先创建一张表存储这类数据将上述的表中Json格式数据进行拆分,拆分成表中的多个字段的值,可以使用Hive函数补充:JSON格式JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(一种广泛使用的网页脚本语言,Script 脚本。原创 2025-03-22 21:16:51 · 1134 阅读 · 0 评论 -
hive自定义函数>>collect_list和collect_set, explode函数, Lateral View)//行列转换(CONCAT_WS,CASE WHEN,UNION ALL)
源自于英文user-defined function。自定义函数总共有3类,是根据。原创 2025-03-21 22:10:07 · 737 阅读 · 0 评论 -
hive的基础函数>>集合函数, 条件函数, 类型转换函数
条件函数集合函数。原创 2025-03-21 11:36:55 · 502 阅读 · 0 评论 -
hive的基础函数>>日期函数,字符串函数,杂项函数
SHA-2(Secure Hash Algorithm 2)是一系列加密哈希函数,它包括多个不同的变体,如 SHA-224、SHA-256、SHA-384 和 SHA-512,它们分别产生不同长度的哈希值。"Cyclic"(循环)指的是在进行CRC计算时,数据被视为一个大的多项式,而生成多项式(polynomial)是这个多项式的一个因子。-- 需要使用 year(), month(), day(), hour(), minute(), second() 获取。(用于替换匹配到的字符串)。原创 2025-03-21 10:06:46 · 1197 阅读 · 0 评论 -
Hive: 中文注释乱码问题
Hive要求数据库级别的字符集必须是latin1。但是对于具体表中字段的字符集则没做要求。默认情况下,字段字符集也是latin1,但是latin1不支持中文。Hive元数据信息存储在MySQL中。信息的几个表字段字符集进行修改。:查看验证是否修改成功。中创建的表,重新建表。原创 2025-02-17 10:21:58 · 474 阅读 · 0 评论 -
hive: 序列化和反序列化:LazySimpleSerDe; 分隔符,转义字符,引用字符; 存储格式(textfile, SequenceFile、Parquet、RCFile 和ORCFile)
原因: 文件经过压缩之后确实变小了,但是压缩文件本身也占内存空间>>文件本身太小,压缩不划算。用于处理文本文件(如 CSV、TSV 等),支持简单的分隔符(如逗号、制表符等):将数据从内存中的对象转换为可以存储或传输的格式(如文本、二进制等)。注意上传文件所在的目录位置>>左侧选择目录位置>> pwd命令查看位置。方法2: 直接拖拽>>左下角会出现上传图标显示正在上传。压缩格式的性能指标: 压缩比, 数据查询时间。查看文件大小: 右键>>显示更多选项>>属性。原始文件(CSV格式的文件:111M)原创 2025-02-16 19:35:06 · 405 阅读 · 0 评论 -
hive:分桶表和分区表的区别, 分桶表,抽样查询
load的本质是把文件复制再上传>>没有经过map reduce>>数据没有进行拆分>>解决: 使用insert into , 写20个insert 非常不方便>> 创建一个表, 把数据放到表里, 再用insert into。如果把A表B表做成分桶表,按照id分成2个桶, 那么A表和B表分别产生了0号桶和1号桶, 现在A表和B表连接只需要交互50次,即0号桶和0号桶交互(25), 1号桶和1号桶交互。余数为2进2号桶...从2号桶开始抽, 抽取桶的总数=桶的总数/y=4/4=1,即只抽1个桶。原创 2025-02-16 17:04:09 · 1193 阅读 · 0 评论 -
hive:分区>>静态分区,动态分区,混合分区
在 Hive 中,无论是静态分区还是动态分区,创建表时使用的 SQL 语句是相同的。这是因为分区的定义方式在表创建时是统一的,而分区的具体行为(静态或动态)是在数据插入时通过不同的操作来区分的。将数据从文件直接加载到 Hive 表中,适用于批量导入数据文件, 文件中的数据必须与表的非分区列匹配。是为数据提供一个临时的存储和转换空间,以便在将数据加载到目标表之前进行必要的处理或验证。:在插入数据时,分区值是根据数据自动生成的。临时表包含目标表的所有字段及分区字段。:在插入数据时,分区值是明确指定的。原创 2025-02-16 11:00:09 · 832 阅读 · 0 评论 -
ETL的使用(sqoop):数据导入,导出
ETLETL: 是数据抽取(Extract)、数据转换(Transform)和数据加载(Load)的整个过程常用的ETL工具1.Apache Sqoop 是 Apache 软件基金会旗下的一个开源项目,旨在帮助用户高效地在 Hadoop 生态系统和关系型数据库之间传输大量数据2.可以将数据在关系型数据库(如MySQL、Oracle、PostgreSQL等)和 Hadoop生态系统(如HDFS、Hive、HBase等)中进行迁移sqoop官网更多内容,阅读文档Kettle。原创 2025-02-12 21:58:16 · 1226 阅读 · 0 评论 -
Hive:静态分区(分区语法,多级分区,分区的查看修改增加删除)
注意: year和month分区的层级关系, month是year的下一级目录,删掉year=2025分区后,2025下一级分区的month=1和month=2也是被删掉的。orcale在进行表分区时不需要定义分区字段的数据类型,Hive需要,因为oracle分区时用的是表内字段,Hive在分区时用的是表外字段。原本的数据还在原来的位置, 所以修改分区只是下次访问该分区时映射的不是原本的目录,映射修改后的路径数据。即修改分区的数据来源, 下次访问该分区时映射修改后的路径数据。导入第二个分区的数据后查看。原创 2025-01-30 17:30:50 · 896 阅读 · 0 评论 -
Hive:窗口函数[ntile, first_value,row_number() ,rank(),dens_rank()]和自定义函数
本质上是一种窗口函数,但由于其生成序列化编号的特性,也被称为序列函数;同时,由于窗口函数在某些数据库系统中被称为分析函数,如果没有指定的话,窗口函数的行为取决于数据库的具体实现.在某些数据库系统中,如果未明确指定窗口范围,如果不能平均分配,则优先分配较小编号的桶,并且各个桶中能放的行数最多相差1。子句的情况下,整个结果集就是一个分区)视为窗口,并为每一行返回整个窗口内的最后一个值。但是,在Hive中,如果不指定窗口范围,注意: 使用last_value需要指定窗口的范围,使用rows或rang,原创 2025-01-30 15:02:32 · 942 阅读 · 0 评论 -
Hive:窗口函数(1)
partition by 必须和over () 一起使用, distribute by经常和sort by 一起使用,可以不和over() 一起使用.所以,示例1和示例2的结果是一样的。在没有order by的聚合函数sum()开窗的结果是起点到终点的累加值(示例3)子句会让输入的数据强制排序 (强调:当使用排序时,窗口会在组内逐行变大)前一行到当前行的加和(S列的值是SAL列的前一行的值加当前行的值)用于定义一个窗口,该窗口指定了函数应用的数据范围。决定了数据如何分布到不同的Reducer上,而。原创 2025-01-30 13:08:24 · 1208 阅读 · 0 评论 -
Hive: Hive的优缺点,使用方式,判断Hive是否启动(jps),元数据的存储,Hive和Hadoop的关系
hive是一个构建在Hadoop上的数据仓库工具框架,可以将结构化的数据文件映射成一张数据表,并可以使用类sql的方式来对这样的数据文件进行读,写以及管理(包括元数据)。这套HIVE SQL简称 HQL。hive的执行引擎可以是MRsparktez。如果执行引擎是MapReduce的话,hive会将Hql翻译成MR进行数据的计算。使用Hive的原因Hive的优缺点Hive的使用方式用户可以使用命令行工具或 JDBC驱动程序(第三方工具)来连接到hive。原创 2025-01-21 17:38:21 · 1621 阅读 · 0 评论 -
Hive关于数据库的语法,warehouse,metastore
create_time 表的创建时间(时间戳),展示的是从1970年到创建表的时候过了多少秒;DB_ID是表所在库的ID;default默认创建一个表是在warehouse下面创建对应的表目录,如果是在某数据库里面创建表,表在数据库里面。Hive默认的库: default, 1/4说明一共有4个库,现在只展示了1个,单击>>所有架构。在Hive里面输入show databases时,默认展示的是DBS里面的数据库名。查看数据库里面的表(注意当前的数据库,在哪个数据库下,查看的就是哪个数据库的表)原创 2025-01-25 21:07:13 · 1144 阅读 · 0 评论 -
Hive:日志,hql运行方式,Array,行列转换
它们不属于系统日志也不属于Job日志,而是用于配置Hive如何记录系统日志和Job日志, 可以通过hive-log4j2 查找日志的位置。如果想查询每个人的总成绩, 因为王五只考了2门成绩, 所以出现了NULL, 需要对空值进行处理, 这需要知道每个数组的元素个数,比较麻烦。把数组里面的元素展开,可以更方便地统计总成绩, 即行转列, 可以使用展开函数(也称爆炸函数)注意: 创建表时除了需要指定数组元素的分隔符, 否则所有的元素都会被当成一个元素。size(数组名) 返回数组元素的个数。原创 2025-01-29 09:39:11 · 1056 阅读 · 0 评论 -
Hive:struct数据类型,内置函数(日期,字符串,类型转换,数学)
STRUCT(结构体)是一种复合数据类型,它允许你将多个字段组合成一个单一的值, 常用于处理嵌套数据,例如当你需要在一个表中存储有关另一个实体的信息时。day()和dayofmonth()返回值是相同的, day()相当于截取日期里面的日,dayofmonth()返回的是当月的第几天。使用pattern的场景, 时间格式默认是年月日时分秒, 有些数据的格式不是标准时间格式,直接写系统无法识别,返回NULL。,这实际上是一个时间偏移量,表示 UTC 时间与某个特定时区(如 UTC+8)之间的差异。原创 2025-01-29 18:44:08 · 1046 阅读 · 0 评论 -
Hive:复杂数据类型之Map函数, 展开数据>>explore爆炸函数,concat_ws字符串拼接函数, 字符串转成map>>str_to_map函数
建表: 定义map的2个属性, key的数据类型是string, value的数据类型是int , 创建表的hql末尾除了定义行的分隔符,数组元素的分隔符外还需要定义key之间的分隔符(map中一个键值对是一个元素)它的全称是 "concatenate with separator",即带分隔符的字符串连接。Map中的键和值可以是基础类型或复合类型,这使得Map在处理需要关联存储信息的数据时非常有用。函数的第一个参数是分隔符,后面的参数是要连接的字符串。SEP分隔符自定义,可以不必是数组里的分隔符。原创 2025-01-29 11:16:35 · 1292 阅读 · 0 评论 -
Hive:基本查询语法
不能用 join ... on ... between还有> , < 和>= 和<=在Hive中, NULL是最小的;Hive除了可以用order by 还有其他的排序方式。left semi join左半连接。oracle中,在升序排序中,和oracle一致的部分。和oracle不一样的部分。被视为小于任何非空值。hive中不支持不等连接。原创 2025-01-27 17:53:15 · 872 阅读 · 0 评论 -
Hive:Hive Shell技巧
S参数, "silent"(静默) , Hive 会减少输出的信息量,只显示查询结果,而不会显示额外的日志或进度信息。在终端命令窗口不能直接执行select,creat等HQL命令,需要先进入hive之后才能执行,比较麻烦,但是如果使用Hive Shell就可以直接执行。表明作业是在 YARN 上运行的,YARN 是 Hadoop 的资源管理器,通常与 MapReduce 和 Spark 作业一起使用。-e 参数, "execute"(执行),使用-e参数后会在执行完Hive的命令后退出Hive。原创 2025-01-27 12:16:51 · 797 阅读 · 0 评论 -
Hive:内部表和外部表,内外转换
已经没有被删除的表,说明元数据已经被删除(mysql里面存放),但是使用Hue查看,外部表还在。内部表转为外部表就是把外部表属性打开,外部表转内部表就是把外部表属性关闭。在使用drop删除时,内部表会被删除元数据和数据文件,而外部表只会被删除元数据,数据文件还在HDFS上存储。外部表转换为内部表后表的类型从 EXTERNAL_TABLE变成MANAGED TABLE。用location指定表目录位置,那么表的位置在实际指定的位置,但是可以被映射。外部表转换为内部表后可以被drop删除。原创 2025-01-27 10:13:35 · 988 阅读 · 0 评论 -
hive:数据导入,数据导出,加载数据到Hive,复制表结构
使用like复制原表的表结构给目标表, 连分隔符也和原表一致,使用select语句则是先创建新表再插入数据,分隔符是默认的,不一定和原表一致.如果想要表结构一致且需要数据,使用数据导入的方法四。粘贴数据内容时,末尾不要有空行,否则数据表会出现空行,因为Hive默认行和行之间是换行,只要出现换行就会新起一行,只不过没有匹配到数据,所以是NULL。加载结束后再查询原文件所在的目录,文件已不存在,HDFS 加载走的是move移动文件。只是映射了原表的数据,没有创建新表, 即通过新表名和原表都可以查到相同的数据。原创 2025-01-27 09:16:17 · 1102 阅读 · 0 评论 -
hive:基本数据类型,关于表和列语法
"SerDe Library" 行指的是用于序列化(Serializer)和反序列化(Deserializer)数据的库。如果建表时没有指定分隔符,使用desc formatted tableName查看表结构时会出现SerDe Library行,建表时未指定分隔符(语法1和语法2),Hive会使用默认的分隔符,列和列之间是\001,行与行之间是\n。注意:修改,增加,删除字段等只是改变字段和数据的映射关系,表内的数据并没有改变。将字段放在首位,前提是要移动的字段和第一个字段的数据类型要保持一致;原创 2025-01-26 10:18:18 · 791 阅读 · 0 评论