hiveql相关内容
我已按照链接中的说明配置了我的 Hive:http://www.youtube.com/watch?v=Dqo1ahdBK_A,但在 Hive 中创建表时出现以下错误.我正在使用 hadoop-1.2.1 和 hive-0.12.0. hive>创建表员工(emp_id int,name string,salary double);失败:执行错误,从 org.apache.hadoop.hive
..
我的问题是:有没有办法在 Hive 中找到一个月的最后一天,比如 Oracle SQL 函数?: LAST_DAY(D_Dernier_Jour) 谢谢. 解决方案 你可以使用 Nexr 提供的 last_day(dateString) UDF.它根据具有 yyyy-MM-dd HH:mm:ss 模式的日期字符串返回该月的最后一天. 示例:SELECT last_day('2
..
我正在尝试将日期列表作为参数传递给我的 hive 查询. #!/bin/bashecho "执行 hive 查询 - 获取不同的日期"var=`hive -S -e "select distinct substr(Transaction_date,0,10) from test_dev_db.TransactionUpdateTable;"`回声 $varecho "执行 hive 查询 - 获
..
我有一个具有以下架构的配置单元表: 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 我尝试了以下方法: 选
..
我正在 Hive QL 中寻找与 SET varname = value 等效的 SQL 我知道我可以做这样的事情: SET CURRENT_DATE = '2012-09-16';SELECT * FROM foo WHERE day >= @CURRENT_DATE 但后来我收到此错误: 此处不支持字符“@" 解决方案 您需要使用特殊的 hiveconf 进行变量替换.
..
我目前正在使用 Hive 进行一些数据探索,无法解释以下行为.假设我有一个带有字段 master_id 的表(名为 mytable). 当我计算我得到的行数 select count(*) as c from mytableC1129563 如果我想计算具有非空 master_id 的行数,我会得到更高的数字 select count(*) as c from mytable wher
..
我在 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
..
我们正在尝试将 oracle 表迁移到 hive 并对其进行处理.目前oracle中的表有primary key、foreign key和unique key约束. 我们可以在 hive 中复制相同的内容吗? 我们正在对如何实施它进行一些分析. 解决方案 Hive 索引是在 Hive 0.7.0 (HIVE-417) 并在 Hive 3.0 中删除 (HIVE-18448) 请
..
我想知道连接两个表时数据记录的顺序是否重要(性能方面)? 附言我没有使用任何地图端连接或桶连接. 谢谢! 解决方案 一方面,顺序应该无关紧要,因为在 shuffle join 文件被映射器并行读取时,文件也可能被分成几个映射器,反之亦然,一个映射器可以读取几个文件,然后映射器输出传递给每个减速器.而且即使数据被排序,由于并行性,它也不会按顺序读取和分发. 另一方面,排序可以根
..
如果我这样做 select * from table1; 检索数据的顺序 文件顺序或随机顺序 解决方案 如果没有 ORDER BY,则无法保证顺序. 许多进程(映射器)并行读取数据,在计算拆分后,每个进程开始读取一些文件或几个文件,具体取决于计算的拆分. 所有的并行进程可以处理不同的数据量并运行在不同的节点上,每次的负载都不一样,所以它们开始返回行并在不同的时间完成,这取
..
文档 说时间戳支持以下转换: •浮点数字类型:解释为具有十进制精度的 UNIX 时间戳(以秒为单位) 首先,我不确定如何解释这一点.如果我有一个时间戳 2013-01-01 12:00:00.423,我可以将其转换为保留毫秒的数字类型吗?因为那是我想要的. 更一般地说,我需要在时间戳之间进行比较,例如 从 mytable 中选择 maxts - mints 作为延迟 其中 m
..
我有两个表 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
..
来自 hive -h : --hiveconf 使用给定属性的值--hivevar 应用于 hive 的变量替换命令.例如--hivevar A=B 解决方案 我觉得文档中的例子不够充分,所以这是我的答案. 一开始只有 --hiveconf 并且不存在变量替换. --hiveconf 选项允许用户设置 来自命令行的 Hive 配置值,就是这样.所有 Hive 配置值都存储在 hi
..
你好朋友, 我在以下命令的帮助下在 hive 中创建了表 - 创建表 db.test(fname 字符串,名字字符串,年龄STRING,暴民 BIGINT) 行格式分隔字段由 '\t' 终止存储为文本文件; 现在从文件加载表中的数据,我使用以下命令 - 将数据本地inpath '/home/cluster/TestHive.csv'加载到表db.test中; 问题是,所有的行都被插入
..
我是 hive 的新手,想知道是否可以像在 SQL 中那样将数据插入到 Hive 表中.我想将我的数据插入到蜂巢中 INSERT INTO tablename VALUES (value1,value2..) 我读到您可以将数据从文件加载到 hive 表,也可以将数据从一个表导入到 hive 表,但有什么方法可以像 SQL 一样附加数据? 解决方案 这里的一些答案从 Hive 0.14
..
我有一个按年、月、日和小时分区的 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
..
在 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
..
我想将当前日期设为 YYMMDD,然后将其设置为变量以便将其用作表名. 这是我的代码: 设置日期=日期+%Y-%m-%d;如果不存在日期,则创建外部表(ID 字符串,区域STRING,城市 STRING) 但是这个方法不行,因为好像赋值不对.有什么想法吗? 解决方案 Hive 不计算变量,它会按原样替换它们,在您的情况下,它将正是这个字符串 'date +%Y-%m-%d'.也不
..
我无法使用以下 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
..
从 Hive 表插入到 Hive 表时,加载的记录比实际记录多.任何人都可以帮助解决 Hive 的这种奇怪行为吗? 我的查询看起来像这样: insert overwrite table_a从 table_b 中选择 col1,col2,col3,...; 我的 table_b 包含 6405465 条记录. 从 table_b 插入到 table_a 后,我发现 table_a 中
..