问题标签 [hiveql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
12560 浏览

hadoop - Hadoop:FSCK 结果显示缺少副本

谁能让我知道如何修复丢失的副本?

==================================================== ===========================

总大小:3447348383 B

总目录:120

文件总数:98

总块(已验证):133(平均块大小 25919912 B)

最少复制块:133 (100.0 %)

过度复制的块:0 (0.0 %)

复制不足的块:21 (15.789474 %)

错误复制的块:0 (0.0 %)

默认复制因子:3

平均块复制:2.3834586

损坏块:0

缺少副本:147 (46.37224 %)

数据节点数:3

机架数量:1

==================================================== ===========================

根据无限指南,

损坏或丢失的块是最令人担忧的原因,因为这意味着数据已经丢失。默认情况下,fsck 会留下带有损坏或丢失块的文件,但您可以告诉它对它们执行以下操作之一:

• 使用-move 选项将受影响的文件移动到HDFS 中的/lost+found 目录。文件被分成连续的块链,以帮助您尝试进行任何挽救工作。

• 使用-delete 选项删除受影响的文件。文件删除后无法恢复。

我的问题是如何找出受影响的文件?我已经与 Hive 合作以毫无问题地获得所需的输出。它会影响查询处理的性能/速度吗?

问候,

拉吉

0 投票
1 回答
990 浏览

hbase - Hive-HBase 集成:找不到表

我指的Hive-HBase 集成。

首先,我验证了 HBase 中没有名为 ORDERS_HIVE_DUMMY 的表:

然后我启动了蜂巢外壳:

然后,我创建了一个表

然后,我验证了该表是在 HBase 中创建的

但是现在当我在 Hive 上查询表时,我得到了一个异常:

我猜想查询外部表需要一些提示写在 HIve 提示符上的查询?可能是什么错误?

0 投票
3 回答
74241 浏览

sql - Combine many tables in Hive using UNION ALL?

I'm trying to append one variable from several tables together (aka row-bind, concatenate) to make one longer table with a single column in Hive. I think this is possible using UNION ALL based on this question ( HiveQL UNION ALL ), but I'm not sure an efficient way to accomplish this?

The pseudocode would look something like this:

Any help is appreciated!

0 投票
2 回答
313 浏览

mysql - HiveQL:在一对多表中查找第 N 个值

我有一个简单的表:

用户可以有任意数量的事件(从无到很多)。我需要运行一个HiveQL查询来提取第三个事件的时间戳(按升序排列)。少于 3 个事件应导致 null。

是否有不需要使用 UDF模拟rank()的解决方案?

0 投票
1 回答
1280 浏览

hive - Hive 不 MapJoin 一个小表反对两个大表的 Union

我有 3 张小桌子:smallTable0smallTable1smallTable3。它们都有不到 100 行和相同的模式。我还有 3 张大桌子:largeTable0largeTable1largeTable3。所有这些都有超过 1M 的行,具有相同的模式,id与小表共享列,被分区在其他东西上id(如果分区很重要,我怀疑它没有)。

设置后hive.auto.convert.join=true,以下情况会按预期生成 MapJoin:

  • 加入smallTable0反对smallTable1
  • 加入smallTable0反对largeTable0
  • 加入smallTable0反对smallTable1 UNION ALL smallTable2

正如预期的那样,以下情况不会导致 MapJoin:

  • 加入largeTable0反对任何事情。
  • 加入smallTable0反对任何东西hive.auto.convert.join=false

然而,出乎意料的是,以下情况也不会导致 MapJoin:

  • 加入smallTable0反对largeTable0 UNION ALL largeTable1

具体查询如下:

它运行良好,但使用 Common Join 而不是 MapJoin 会导致性能下降。创建一个表示的视图largeTable0 UNION ALL largeTable1并不能解决问题。我确信创建一个largetTable0 UNION ALL largeTable1可以解决问题的表,但是复制这么多数据然后让它们保持同步是不可取的。

Union 运算符的源代码(此处)有一条我觉得有点神秘的评论。

似乎表明 UNION 运算符不允许使用显式 MapJoin 提示,但 UNION 运算符允许使用 MapJoin 作为hive.auto.convert.join. 但是我不明白为什么一个会被允许另一个不允许。除非“正常工作”意味着查询将“工作”,而不是使用 MapJoin。但是,如果是这种情况,我会期望加入smallTable0smallTable1 UNION ALL smallTable2导致共同加入。

奇怪的行为是 Hive 中的错误、我的代码中的错误、Hive 中缺少的功能还是我的误解造成的?

0 投票
2 回答
4499 浏览

hive - 在 hive 中,如何在 2 行之间进行计算?

我有这张桌子。

我想要得到的是每一行,

需要明确的是,上述示例的结果应该是,

(对于 value2 我也需要同样的下一个)

我尝试了很多来为此提出一个蜂巢查询,但仍然没有运气。如here (Quassnoi's answer)所述,我能够在sql中为此编写查询,但无法在hive中创建等效项,因为hive不支持select中的子查询。

有人可以帮我实现这一目标吗?

提前致谢。

编辑:

我试过的查询是,

0 投票
2 回答
2625 浏览

hadoop - 由于映射端聚合中使用的哈希映射导致内存不足

我的 Hive Query 抛出了这个异常。

我在 8 个 EMR 核心实例上尝试了这个,其中 1 个大型主实例在 8Gb 数据上。首先我尝试使用外部表(数据位置是 s3 的路径)。之后,我将数据从 S3 下载到 EMR 并使用本机配置单元表。但是在他们两个中我都遇到了同样的错误。

0 投票
2 回答
201 浏览

hiveql - 如果存在一条特定记录,如何编写配置单元查询以显示所有记录?

如果表中存在特定记录,我必须编写一个配置单元查询来显示完整的表。

例如: 我有一张表 customers (cust_name,cust_num,city,rating)

如果此表中存在圣何塞市,我必须显示所有记录。如何使用 select 语句编写查询?

0 投票
2 回答
817 浏览

hadoop - 如何将 LinkedIn Json 文件导入 Hive 外部表?

以下是使用 API 从 LinkedIn 导出的 JSON 文件。

}

将上面的 json 文档保存在一个文本文件中,并导入到 hadoop 目录 /sample.xml 中。

使用以下命令创建外部表。还添加了 serde 的 JAR 文件。

运行select statement ( select * from linkedi;)时显示以下错误。

OK 失败并出现异常 java.io.IOException:java.lang.ClassCastException: org.json.JSONObject 无法转换为 [Ljava.lang.Object; 耗时:0.213 秒

显示错误的原因是什么?表的结构是否有任何错误?

0 投票
1 回答
2532 浏览

hive - 更好的 HiveQL 语法将一列结构分解成一个表,每个结构成员一列?

我在 HiveQL 中寻找 argmax() 类型函数,并在他们的错误跟踪器 ( https://issues.apache.org/jira/browse/HIVE-1128 ) 中发现了一个几乎没有记录的功能,它通过使用 max( ) 的结构,它根据第一个元素找到最大值并返回整个结构。(实际上,也许 max() 会通过查看后续元素来打破关系?我不知道。)

无论如何,如果我本质上想选择包含某个列的最大值的整行,我可以先将该行打包成一个具有比较值的结构,然后提取最大结构以重建最佳行。但是语法是重复的和丑陋的。有更好的方法吗?(我猜自加入是另一种选择,但似乎不太优雅,而且我猜效率较低?)

示例表:

HiveQL:

结果: