问题标签 [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 投票
0 回答
84 浏览

mapreduce - 使用 hive 解决我的任务

所以我有一个任务,在表中插入一条新记录。

然后我在同一张表中查询所有历史记录。

并将所有这些历史记录与新记录进行比较,并将匹配项存储在不同的表中。现在存在一个问题,即当存在大量数据时它会变得不成比例。并且每次新的计算都需要更多的时间。

我无法缓存历史记录,因为它们可能会在一段时间后过期并过时。

比较任务相当复杂,因此它在 java 代码中。我不想写一个地图减少工作来做到这一点。

有没有办法我可以使用蜂巢来完成我的任务

0 投票
2 回答
2241 浏览

hive - 合并两个表的连接中的列

我在 Hive 数据库中有以下表:

我想将它们合并成一个像这样的表:

基本上我想做的是:

  1. 列上的连接id(这部分很简单)

  2. 将列合并table1.ttable2.t一个新列中t

  3. 如果对应的来自,Z则具有等于的变量,如果它来自table1.Xttable1.ttable2.Ytable2.t

  4. id按顺序排列桌子t(这不应该太难)

我不知道如何执行第 2 部分和第 3 部分。我尝试使用外连接 table1.id = table2.id and table1.t = table2.t,但它没有合并两列t

任何指针将不胜感激。谢谢!

0 投票
1 回答
64889 浏览

hive - 配置单元中的映射类型变量

我在尝试在 hive 中定义地图类型时遇到了麻烦。根据Hive Manual肯定有一个地图类型,不幸的是没有任何关于如何使用它的例子。:-(

假设,我有一个包含以下列的表(用户):

此“CategoryName”列具有特定的值集。现在我想创建一个将 CategoryName 映射到 CategoryID 的哈希表。我试着做:

我有两个问题:

  1. 当我这样做时,set hivevar:${nameToID['A']}我认为它会将值打印为 1。但我得到“${hivevar:nameToID['A']} is undefined”

  2. 我不确定我该怎么说,select name, ph, ${nameToID[CategoryName]} from users

0 投票
2 回答
23595 浏览

hive - hiveQL if 语句在一行上重新组合

询问 :

结果 :

无论如何只有这样的一行有结果吗?:

0 投票
1 回答
248 浏览

hadoop - 如何在 Hadoop Hive 中执行“事件顺序”查询?

在过去的 2 个月里,我一直在学习 Hive,但我无法弄清楚如何进行某些基于序列的查询。举个例子:

  • 我有一个包含用户操作的巨大日志
  • 每个用户操作都有一个日期字段,但由于来自不同机器的多个日志文件,显然可能不会按该顺序扫描
  • 每个日志可以记录各种不同的事件。对于这个例子,我将它们表示为字母:A、B、C、D...

问题:我将如何编写一个询问“平均而言,事件 A 在 B 发生之前发生多少次”的查询?

我知道如何对用户进行分组,只取完成 A 和 B 的用户并平均 A 发生的数量,但是限制 B 的第一次出现似乎很困难。我想我实际上可以通过将 10 个左右看起来很讨厌的查询串在一起来做到这一点,但我想知道是否有一种我不知道的更简单的方法来做到这一点。

谢谢!

0 投票
0 回答
945 浏览

php - 并行执行多个 Hive 查询

我正在使用 php、Hadoop/Hive(单节点 Hadoop 集群-cloudera vm、8 CPU 4 GB RAM)、Thrift API 开发基于 Web 的分析工具。Hive thrift API 按顺序运行 Hive 查询,这需要大量时间来执行。我正在尝试对这些配置单元查询使用多线程方法,以便它们可以并行执行并节省执行时间。

我已在conf/mapred-site.xml文件中将“ mapred.tasktracker.map.tasks.maximum ”的默认值更改为20,并将“ mapred.tasktracker.reduce.tasks.maximum ”的默认值更改为20 。我还在 conf/hive-site.xml 中将“ hive.exec.parallel 默认值更改为true

我可以使用PHP“curl_multi_exec”并行运行 4 个 hive 查询,但 5 个并行 hive 查询需要无限的执行时间。在进行了前面提到的更改后,我仍然得到相同的结果。

我能够并行执行 4 个查询,但不能执行 5 个。

那么,在这里我做错了什么?为什么它适用于 4 个并行查询但不适用于 5 个并行查询?我是否需要对配置文件进行任何其他更改?

谢谢,

0 投票
2 回答
1114 浏览

sql - 查找由另一个表中的两列定义的范围(箱)中的值列表,并从第三列中获取相应的值

您好,我有两张桌子 T1 和 T2。T1 有一列整数值。并且 T2 具有由两列定义的范围和每个范围的相应值......像这样:

假设我希望能够从 T2 中为 T1 的每个整数获取“值”,具体取决于整数值属于哪个范围。比如说,我在 T1 中有 6、7 和 12 个。那么,理想的结果应该是这样的:

请注意,我没有什么可以加入的。我不知道如何使用 SQL 来做到这一点。我不知道它是否会有所作为,但我正在使用 HiveQL。

我真的很感谢你的帮助。谢谢!

干杯

0 投票
1 回答
2573 浏览

hive - “SELECT DISTINCT”忽略 Hive 中的不同情况

我需要以下查询的输出:

O/P 应该是:

'A'并且'a'只有一个条目应该成为。

但在蜂巢中我有:

在sql中有类似的东西:

有没有类似的东西:'sql_latin1_general_cp1_cs_as'在蜂巢或任何替代查询中?

0 投票
4 回答
651 浏览

sql - HiveQL - 大数据的高效 geoip 发现

我正在使用此配置单元查询来发现所有帐户的国家代码。问题是连接将数据集爆炸到无法管理的大小,甚至有时作业也无法完成。

完成此 geoip 查找查询的快速有效方法是什么?使用 Hive 不是强制性的

Hive 不支持BETWEENinsideON子句。此外,WHERE过滤器仅在连接完成后应用。任何提示也会很有用。我目前正在尝试使用自定义 MapReduce 作业来解决此问题。有人有什么想法吗?

信息

  • geoip表大小约为 1MB
  • Hadoop集群只有12个map slot和12个reduce slot
  • 我试图根据第begin_ip_num一个八位位组(例如:123of 123.0.0.0)存储 geoip 表,然后使用JOIN子句中的条件,例如FROM data JOIN geoip ON (data.first_octet_bucket=geoip.first_octet_bucket). 此技术不起作用,因为某些行将被遗漏。
0 投票
1 回答
3398 浏览

hadoop - Hive 多次插入与 DISTINCT 选择语句出错

我从“ Hadoop the Definitive Guide ”中阅读了这段代码:

但作为我的测试,使用几个 DISTINCT 不能得到正确的结果。

我的hiveql如下:

然后将本地文件加载到此表...

那么如果单独插入表格:

结果正确;

但如果选择下一个多重插入 hql:

那么这是一个错误还是我写了一些错误的语法?