Wie https://cwiki.apache.org/confluence/display/Hive/Common+Table+Expression sehe ich, dass CTEs in HIVE unterstützt werden. Allerdings bekomme ich die folgenden Fehler, wenn ein einfache CTEFehler bei der Verwendung von CTE auf HIVE SQL - java.lang
An error occurred while calling o60.sql.
: java.lang.StackOverflowError
at java.lang.ThreadLocal.set(ThreadLocal.java:201)
ich diesen Fehler auszuführen versuchen, wenn die unten stehende Abfrage versuchen, alle Eltern von einem Zielknoten
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
""")
Ich würde tun wollen nicht Hive Referenz für Spark verwenden. Nicht alle Hive-Funktionen werden in Spark unterstützt. Weitere Informationen finden Sie unter [Unterstützte Hive-Funktionen] (http://spark.apache.org/docs/latest/sql-programming-guide.html#supported-hive-features) im [Spark SQL- und DataFrame-Handbuch] /spark.apache.org/docs/latest/sql-programming-guide.html) – zero323