【问题标题】:Hierarchical queries on HiveHive 上的分层查询
【发布时间】: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就够了

标签: hive pyspark hiveql


【解决方案1】:

SQL 本身不支持迭代,也不支持递归...

  • 使用 CONNECT BY 子句,您可以让数据库处理递归,并假装它很简单 >> 在 Hive 中不可用
  • 使用过程语言包装器(例如 T-SQL、PL/SQL、PgSQL),您可以进行迭代,直到每个叶子都连接到根(...冗长的代码,没有乐趣测试...)>> 不可用在 Hive 中也是如此,除非您使用 Python 来管理迭代并在每次迭代上运行 INSERT 查询,然后收集结果

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-14
    • 2023-03-05
    • 1970-01-01
    • 2011-06-26
    • 1970-01-01
    • 2010-11-24
    • 2020-12-27
    相关资源
    最近更新 更多