问题标签 [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.
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 合作以毫无问题地获得所需的输出。它会影响查询处理的性能/速度吗?
问候,
拉吉
hbase - Hive-HBase 集成:找不到表
我指的是Hive-HBase 集成。
首先,我验证了 HBase 中没有名为 ORDERS_HIVE_DUMMY 的表:
然后我启动了蜂巢外壳:
然后,我创建了一个表
然后,我验证了该表是在 HBase 中创建的
但是现在当我在 Hive 上查询表时,我得到了一个异常:
我猜想查询外部表需要一些提示写在 HIve 提示符上的查询?可能是什么错误?
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!
mysql - HiveQL:在一对多表中查找第 N 个值
我有一个简单的表:
用户可以有任意数量的事件(从无到很多)。我需要运行一个HiveQL查询来提取第三个事件的时间戳(按升序排列)。少于 3 个事件应导致 null。
是否有不需要使用 UDF模拟rank()的解决方案?
hive - Hive 不 MapJoin 一个小表反对两个大表的 Union
我有 3 张小桌子:smallTable0
、smallTable1
和smallTable3
。它们都有不到 100 行和相同的模式。我还有 3 张大桌子:largeTable0
、largeTable1
和largeTable3
。所有这些都有超过 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。但是,如果是这种情况,我会期望加入smallTable0
会smallTable1 UNION ALL smallTable2
导致共同加入。
奇怪的行为是 Hive 中的错误、我的代码中的错误、Hive 中缺少的功能还是我的误解造成的?
hive - 在 hive 中,如何在 2 行之间进行计算?
我有这张桌子。
我想要得到的是每一行,
需要明确的是,上述示例的结果应该是,
(对于 value2 我也需要同样的下一个)
我尝试了很多来为此提出一个蜂巢查询,但仍然没有运气。如here (Quassnoi's answer)所述,我能够在sql中为此编写查询,但无法在hive中创建等效项,因为hive不支持select中的子查询。
有人可以帮我实现这一目标吗?
提前致谢。
编辑:
我试过的查询是,
hadoop - 由于映射端聚合中使用的哈希映射导致内存不足
我的 Hive Query 抛出了这个异常。
我在 8 个 EMR 核心实例上尝试了这个,其中 1 个大型主实例在 8Gb 数据上。首先我尝试使用外部表(数据位置是 s3 的路径)。之后,我将数据从 S3 下载到 EMR 并使用本机配置单元表。但是在他们两个中我都遇到了同样的错误。
hiveql - 如果存在一条特定记录,如何编写配置单元查询以显示所有记录?
如果表中存在特定记录,我必须编写一个配置单元查询来显示完整的表。
例如: 我有一张表 customers (cust_name,cust_num,city,rating)
如果此表中存在圣何塞市,我必须显示所有记录。如何使用 select 语句编写查询?
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 秒
显示错误的原因是什么?表的结构是否有任何错误?
hive - 更好的 HiveQL 语法将一列结构分解成一个表,每个结构成员一列?
我在 HiveQL 中寻找 argmax() 类型函数,并在他们的错误跟踪器 ( https://issues.apache.org/jira/browse/HIVE-1128 ) 中发现了一个几乎没有记录的功能,它通过使用 max( ) 的结构,它根据第一个元素找到最大值并返回整个结构。(实际上,也许 max() 会通过查看后续元素来打破关系?我不知道。)
无论如何,如果我本质上想选择包含某个列的最大值的整行,我可以先将该行打包成一个具有比较值的结构,然后提取最大结构以重建最佳行。但是语法是重复的和丑陋的。有更好的方法吗?(我猜自加入是另一种选择,但似乎不太优雅,而且我猜效率较低?)
示例表:
HiveQL:
结果: