取消
顯示的結果
而不是尋找
你的意思是:

從引發2.4升級到3.2:當使用遞歸的觀點錯誤

RasmusOlesen
新的貢獻者三世

我們得到了這樣的錯誤,

遞歸的觀點“x”檢測(周期:“x”- >“x”)

. .在我們長期工作代碼,在火花2.4.5很好(6.4運行時),當我們火花3.2集群上運行它(10.0運行時)。

它發生時,

< x是一個Dataframe >

x.createOrReplaceTempView (“x”)

…為了使用火花SQL等,

y = spark.sql (“””

選擇……

從x

”“”)

- - - - - - -

似乎(“x”)的名稱

x.createOrReplaceTempView (“x”)

…需要全局唯一,不能覆蓋函數(即使“createOrReplaceTempView”有“替換”這個詞)。

有解決這個問題的一般沒有設定全球“火花。<一>。遺產”的選擇嗎?(我們希望避免)

如果沒有解決,我們現在麻煩重寫重寫每個

x.createOrReplaceTempView (“x”)

z = f 'x_ {timestamp_as_text_with_underscores}’

x.createOrReplaceTempView (z)

…離岸金融中心用它,

y = spark.sql (“””

選擇……

從z

”“”)

…這樣的人,但我們更喜歡更優雅的解決方案,如果有一個嗎?

4回複4

Hubert_Dudek1
尊敬的貢獻者三世

奇怪的它應該工作。隻有其他想法,我是檢查createOrReplaceGlobalTempView使用全局數據庫。createOrReplaceTempView是使用“缺省”數據庫在遷移過程中可能有一些問題嗎?您可以創建新的火花數據庫。

下麵的函數也可以有用的診斷問題:

spark.catalog.currentDatabase spark.catalog.listDatabases () () spark.catalog.listTables(“違約”)

RasmusOlesen
新的貢獻者三世

非常感謝休伯特,

可能是一個錯誤,3.2的火花createOrReplaceTempView意外調用/使用全球數據庫,而不是一個“默認”?

我們實現了一個臨時的臨時係統,通過時間戳我們登記的名字是獨特的名稱,然後使用這些動態名稱火花的SQL。

再次謝謝你的表達式檢查DB的注冊名稱!

RobinL
新的貢獻者二世

我遇到同樣的問題引發3.2.0(不是磚)。這是唯一的其他參考這個問題我發現在線。我在這裏的主要引發項目提出了一個問題:https://issues.apache.org/jira/browse/spark - 37690。有一個可複製的例子,2。x和3.2.1我相當有信心,這是一個bug引入3.2.0

arkrish
新的貢獻者二世

這是一個重大改變在火花3.1中引入的

遷移指南:SQL數據集和DataFrame——火花3.1.1文檔(apache.org)

在火花3.1中,永久的臨時視圖會有相同的行為觀點,即捕獲和儲存SQL配置運行時,SQL文本、目錄和命名空間。capatured視圖屬性將被應用在視圖的解析和分析階段解決。恢複之前的行為引發3.1,你可以設置spark.sql.legacy。storeAnalyzedPlanForView為真

我試過設置spark.sql.legacy。storeAnalyzedPlanForView為真並且能夠恢複舊的行為。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map