Theo https://cwiki.apache.org/confluence/display/Hive/Common+Table+Expression tôi thấy rằng CTE được hỗ trợ trong HIVE. Tuy nhiên, tôi nhận được báo lỗi dưới đây khi cố gắng thực hiện một CTE đơn giảnLỗi khi sử dụng cte trên SQLE SQL - java.lang
An error occurred while calling o60.sql.
: java.lang.StackOverflowError
at java.lang.ThreadLocal.set(ThreadLocal.java:201)
tôi nhận được lỗi này khi cố gắng truy vấn dưới đây để lấy tất cả các bậc phụ huynh của một node đích
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
""")
tôi sẽ không sử dụng tài liệu tham khảo Hive cho Spark. Không phải tất cả các tính năng của Hive đều được hỗ trợ trong Spark. Để biết thêm thông tin, xem [Các tính năng Hive được hỗ trợ] (http://spark.apache.org/docs/latest/sql-programming-guide.html#supported-hive-features) trong [Hướng dẫn sử dụng SQL và DataFrame] (http://spark.apache.org/docs/latest/sql-programming-guide.html) – zero323