mhn*_*mhn 6 sql hive common-table-expression apache-spark pyspark
根据https://cwiki.apache.org/confluence/display/Hive/Common+Table+Expression, 我发现HIVE支持CTE.但是,我在尝试执行简单的CTE时遇到以下错误
An error occurred while calling o60.sql.
: java.lang.StackOverflowError
at java.lang.ThreadLocal.set(ThreadLocal.java:201)
Run Code Online (Sandbox Code Playgroud)
尝试以下查询以获取目标节点的所有父项时,我收到此错误
nodelist = sqlContext.sql("""
SELECT node,src from known
""")
nodelist.registerTempTable("nodelist")
pathcalc = sqlContext.sql("""
WITH nodeMaster
AS ( SELECT p.node,
p.src
FROM nodelist p
WHERE p.node = """+dest+"""
UNION ALL
SELECT c.node,
c.src
FROM nodeMaster cte
INNER JOIN nodelist c ON c.node = cte.src
)
SELECT node
FROM nodeMaster m
""")
Run Code Online (Sandbox Code Playgroud)
您在WITH 子句中引用CTE 表nodeMaster。根据https://cwiki.apache.org/confluence/display/Hive/Common+Table+Expression,不支持此递归引用。
相反,你可能想做类似的事情
WITH nodedest AS
( SELECT p.node,
p.src
FROM nodelist p
WHERE p.node = {dest}
)
SELECT nodelist.node
FROM nodedest
INNER JOIN nodelist
ON nodelist.node = nodedest.src
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1606 次 |
| 最近记录: |