Рекурсивный CTE в улье
У меня есть рекурсивный CTE, написанный на SQL-сервере, который мне нужно перенести на HIVE. Поскольку улей не поддерживает рекурсию в CTE, я застрял здесь. мне советуют написать Java UDF для этого, но я не эксперт в Java. Если бы кто-нибудь мог здесь помочь, я был бы великолепен.
Код (SQL-сервер):
WITH CTE_CATEGORY_TREE AS
(
SELECT CT.seq
, CT.[name]
, CT.pseq
, convert(varchar(255), CT.seq) AS [sort]
, convert(nvarchar(255), CT.[name]) AS [depth_fullname]
FROM [dbo].[table1] AS CT WITH(NOLOCK)
WHERE CT.pseq = 0
UNION ALL
SELECT PC.seq
, PC.[name]
, PC.pseq
, convert(varchar(255), convert(nvarchar,CT2.sort) + N' > ' + convert(varchar(255), PC.seq)) AS [sort]
, convert(nvarchar(255), convert(nvarchar,CT2.depth_fullname) + N' > ' + convert(nvarchar(255), PC.[name])) AS [depth_fullname]
FROM [dbo].[table1] AS PC WITH(NOLOCK)
JOIN CTE_CATEGORY_TREE AS CT2 ON PC.pseq = CT2.seq
)
SELECT seq
, [name]
, pseq
, sort
, depth_fullname
FROM CTE_CATEGORY_TREE