如何通过 instr prior sys guid() 在 hive 上编写连接

问题描述

我正在使用 thiveinput talend 将数据从 oracle 传输到 hive。

我的代码看起来像这样。

SELECT 
disTINCT A.ID,LEVEL SEQUENCE,REGEXP_SUBSTR(A.AnesT,'[^|]+',1,LEVEL),DATE
FROM
( SELECT A.* 
FROM tableaa A,tablebb B
  WHERE A.IDX = B.IDY
  and A.DATE = B.DATE
  ) A
CONNECT BY INSTR(A.AnesT,'|',LEVEL-1) > 0
AND PRIOR sys_guid() IS NOT NULL

介意用简单的方式解释一下,instr 的 connect 代表什么? 我应该如何在 hive 中写入?

谢谢

解决方法

“CONNECT BY”是一种执行递归查找的方法,例如一行中的 data_id 和 parent_id,其中 parent_id 将指向另一行中的之前 data_id。这使得 Oracle 可以快速构建层次关系树等。

在 Hive 中没有与此对应的原生版本。

我确实看到过一篇关于创建外部函数以支持 Hive 中类似功能的博客文章,您可以在此处查看:https://blog.pythian.com/recursion-in-hive/

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...