Come da https://cwiki.apache.org/confluence/display/Hive/Common+Table+Expression vedo che le CTE sono supportate in HIVE. Tuttavia, ottengo l'errore quando si sta provando ad eseguire una semplice CTEErrore nell'usare cte su HIVE SQL - java.lang
An error occurred while calling o60.sql.
: java.lang.StackOverflowError
at java.lang.ThreadLocal.set(ThreadLocal.java:201)
ottengo questo errore quando provano la query di seguito per recuperare tutti i genitori di un nodo di destinazione
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
""")
Non vorrei usare di riferimento Hive per la Spark. Non tutte le funzionalità di Hive sono supportate in Spark. Per ulteriori informazioni consultare [Funzioni Hive supportate] (http://spark.apache.org/docs/latest/sql-programming-guide.html#supported-hive-features) in [Spark SQL e DataFrame Guide] (http://spark.apache.org/docs/latest/sql-programming-guide.html) – zero323