Hive 上的分层查询
Posted
技术标签:
【中文标题】Hive 上的分层查询【英文标题】:Hierarchical queries on Hive 【发布时间】:2015-11-04 23:54:15 【问题描述】:我在 pyspark 中有一个数据框,其中包含如下数据
node 1:
node 3: 1
node 5: 1
node 2: 3
node 4: 2
现在我需要知道节点 4 的所有父节点,这样我才能得到类似
的输出1,3,2
这是否可以使用 Hive SQL 查询?
【问题讨论】:
4 是它自己的父节点? 4 不是其自身的父级。 4 有父节点 2,2 有父节点 3,3 有父节点 1,1 是根节点 "我需要知道节点 4 的所有 parents" => 输出:1,2,3,4
暗示 4
是 4 的父节点.
ok.. 1,3,2就够了
【参考方案1】:
SQL 本身不支持迭代,也不支持递归...
使用CONNECT BY
子句,您可以让数据库处理递归,并假装它很简单 >> 在 Hive 中不可用
使用过程语言包装器(例如 T-SQL、PL/SQL、PgSQL),您可以进行迭代,直到每个叶子都连接到根(...冗长的代码,没有乐趣测试...)>> 不可用在 Hive 中也是如此,除非您使用 Python 来管理迭代并在每次迭代上运行 INSERT 查询,然后收集结果
【讨论】:
以上是关于Hive 上的分层查询的主要内容,如果未能解决你的问题,请参考以下文章