hiveql相关内容

在 Hive 中查找一个月的最后一天

我的问题是:有没有办法在 Hive 中找到一个月的最后一天,比如 Oracle SQL 函数?: LAST_DAY(D_Dernier_Jour) 谢谢. 解决方案 你可以使用 Nexr 提供的 last_day(dateString) UDF.它根据具有 yyyy-MM-dd HH:mm:ss 模式的日期字符串返回该月的最后一天. 示例:SELECT last_day('2 ..
发布时间:2021-12-28 23:15:03 其他开发

Hive Explode/横向查看多个阵列

我有一个具有以下架构的配置单元表: COOKIE |产品编号 |CAT_ID |数量1234123 [1,2,3] [r,t,null] [2,1,null] 如何对数组进行标准化,以便得到以下结果 COOKIE |产品编号 |CAT_ID |数量1234123 [1] [r] [2]1234123 [2] [吨] [1]1234123 [3] null null 我尝试了以下方法: 选 ..
发布时间:2021-12-28 23:14:35 其他开发

如何在 HIVE 脚本中设置变量

我正在 Hive QL 中寻找与 SET varname = value 等效的 SQL 我知道我可以做这样的事情: SET CURRENT_DATE = '2012-09-16';SELECT * FROM foo WHERE day >= @CURRENT_DATE 但后来我收到此错误: 此处不支持字符“@" 解决方案 您需要使用特殊的 hiveconf 进行变量替换. ..
发布时间:2021-12-28 23:13:01 其他开发

hive 表达式不在按键分组

我在 HIVE 中创建了一个表.它有以下列: id bigint, rank bigint, 日期字符串 我想每月获得平均(排名).我可以使用这个命令.它有效. 选择a.lens_id, avg(a.rank)从表A按 a.lens_id、year(a.date_saved)、month(a.date_saved) 分组; 不过,我也想获取日期信息.我使用这个命令: 选择a.lens_i ..
发布时间:2021-12-27 08:08:25 其他开发

Hive 查询语言中的主键和索引是否可行?

我们正在尝试将 oracle 表迁移到 hive 并对其进行处理.目前oracle中的表有primary key、foreign key和unique key约束. 我们可以在 hive 中复制相同的内容吗? 我们正在对如何实施它进行一些分析. 解决方案 Hive 索引是在 Hive 0.7.0 (HIVE-417) 并在 Hive 3.0 中删除 (HIVE-18448) 请 ..
发布时间:2021-12-21 23:50:30 数据库

Hive 数据记录的顺序是否对连接表很重要

我想知道连接两个表时数据记录的顺序是否重要(性能方面)? 附言我没有使用任何地图端连接或桶连接. 谢谢! 解决方案 一方面,顺序应该无关紧要,因为在 shuffle join 文件被映射器并行读取时,文件也可能被分成几个映射器,反之亦然,一个映射器可以读取几个文件,然后映射器输出传递给每个减速器.而且即使数据被排序,由于并行性,它也不会按顺序读取和分发. 另一方面,排序可以根 ..
发布时间:2021-12-20 16:28:25 其他开发

选择数据时 Hive 是否保留文件顺序

如果我这样做 select * from table1; 检索数据的顺序 文件顺序或随机顺序 解决方案 如果没有 ORDER BY,则无法保证顺序. 许多进程(映射器)并行读取数据,在计算拆分后,每个进程开始读取一些文件或几个文件,具体取决于计算的拆分. 所有的并行进程可以处理不同的数据量并运行在不同的节点上,每次的负载都不一样,所以它们开始返回行并在不同的时间完成,这取 ..
发布时间:2021-12-15 19:28:27 其他开发

如何在 hive 中获得毫秒精度?

文档 说时间戳支持以下转换: •浮点数字类型:解释为具有十进制精度的 UNIX 时间戳(以秒为单位) 首先,我不确定如何解释这一点.如果我有一个时间戳 2013-01-01 12:00:00.423,我可以将其转换为保留毫秒的数字类型吗?因为那是我想要的. 更一般地说,我需要在时间戳之间进行比较,例如 从 mytable 中选择 maxts - mints 作为延迟 其中 m ..
发布时间:2021-12-15 19:16:38 其他开发

Hive 不支持,存在.如何编写以下查询?

我有两个表 A 和 B,它们都有一个列 id.我希望从 A 中获取 B 中不存在的 id.显而易见的方法是: SELECT id FROM A WHERE id NOT IN (SELECT id FROM B) 不幸的是,Hive 不支持 in、exists 或 subqueries.有没有办法使用连接来实现上述目的? 我想到了以下 SELECT A.id FROM A,B WHER ..
发布时间:2021-12-15 19:15:03 其他开发

-hivevar 和 -hiveconf 有什么区别?

来自 hive -h : --hiveconf 使用给定属性的值--hivevar 应用于 hive 的变量替换命令.例如--hivevar A=B 解决方案 我觉得文档中的例子不够充分,所以这是我的答案. 一开始只有 --hiveconf 并且不存在变量替换. --hiveconf 选项允许用户设置 来自命令行的 Hive 配置值,就是这样.所有 Hive 配置值都存储在 hi ..
发布时间:2021-12-15 19:05:29 其他开发

在 hive 表中加载时跳过 csv 的第一行

你好朋友, 我在以下命令的帮助下在 hive 中创建了表 - 创建表 db.test(fname 字符串,名字字符串,年龄STRING,暴民 BIGINT) 行格式分隔字段由 '\t' 终止存储为文本文件; 现在从文件加载表中的数据,我使用以下命令 - 将数据本地inpath '/home/cluster/TestHive.csv'加载到表db.test中; 问题是,所有的行都被插入 ..
发布时间:2021-12-15 19:05:00 其他开发

Hive 插入查询,如 SQL

我是 hive 的新手,想知道是否可以像在 SQL 中那样将数据插入到 Hive 表中.我想将我的数据插入到蜂巢中 INSERT INTO tablename VALUES (value1,value2..) 我读到您可以将数据从文件加载到 hive 表,也可以将数据从一个表导入到 hive 表,但有什么方法可以像 SQL 一样附加数据? 解决方案 这里的一些答案从 Hive 0.14 ..
发布时间:2021-12-15 19:02:56 其他开发

为什么此查询不会发生分区消除?

我有一个按年、月、日和小时分区的 hive 表.我需要对其运行查询以获取过去 7 天的数据.这是在 Hive 0.14.0.2.2.4.2-2 中.我的查询目前看起来像这样: SELECT COUNT(column_name) from table_name其中年 >= 年(date_sub(from_unixtime(unix_timestamp()), 7))AND 月份 >= 月份(dat ..
发布时间:2021-12-15 19:01:47 其他开发

将分钟添加到 Hive 中的日期时间

在 Hive 中是否有一个函数可以用来将分钟(int)添加到类似于 DATEADD (datepart,number,date) in sql server where datepart 的日期时间> 可以是 minutes:DATEADD(minute,2,'2014-07-06 01:28:02') 返回 2014-07-06 01:28:02 另一方面,Hive 的 date_add(st ..
发布时间:2021-12-15 19:00:25 其他开发

获取当前日期并将其设置为变量,以便在 HIVE 中将其用作表名

我想将当前日期设为 YYMMDD,然后将其设置为变量以便将其用作表名. 这是我的代码: 设置日期=日期+%Y-%m-%d;如果不存在日期,则创建外部表(ID 字符串,区域STRING,城市 STRING) 但是这个方法不行,因为好像赋值不对.有什么想法吗? 解决方案 Hive 不计算变量,它会按原样替换它们,在您的情况下,它将正是这个字符串 'date +%Y-%m-%d'.也不 ..
发布时间:2021-12-15 18:58:18 其他开发

加入表时 Hive 查询出错

我无法使用以下 HIVE 查询通过相等性检查. 我有 3 张桌子,我想加入这些桌子.我尝试如下,但出现错误: FAILED:语义分析错误:第 3:40 行在 JOIN 'visit_date' 中遇到左右别名 select t1.*, t99.* from table1 t1 JOIN(选择 v3.*, t3.* from table2 v3 JOIN table3 t3 ON( v ..
发布时间:2021-12-15 18:51:05 其他开发

在 Hive 中加载比实际更多的记录

从 Hive 表插入到 Hive 表时,加载的记录比实际记录多.任何人都可以帮助解决 Hive 的这种奇怪行为吗? 我的查询看起来像这样: insert overwrite table_a从 table_b 中选择 col1,col2,col3,...; 我的 table_b 包含 6405465 条记录. 从 table_b 插入到 table_a 后,我发现 table_a 中 ..
发布时间:2021-12-15 18:45:28 其他开发