【发布时间】:2016-02-07 10:36:29
【问题描述】:
根据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)
我在尝试以下查询以获取目标节点的所有父节点时收到此错误
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
""")
【问题讨论】:
-
我不会对 Spark 使用 Hive 参考。 Spark 并非支持所有 Hive 功能。有关详细信息,请参阅 Supported Hive Features 中的 Spark SQL and DataFrame Guide
标签: sql apache-spark hive common-table-expression pyspark