问题描述
我正在使用 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/