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

磚運行時10.4 LTS - AnalysisException:沒有這種結構體字段id 0 1升級之後

Emiel_Smeenk
新的貢獻者三世

你好,

我們正在遷移到磚運行時從9.1 10.4 LTS LTS但我們遇到奇怪的行為問題。我們現有的代碼工作直到運行時10.3和10.4在它停止工作。

問題:

我們有一個嵌套的json文件,我們是壓扁成一個火花數據幀使用下麵的代碼:

adaccountsdf = df。withColumn (Exp_Organizations, F.explode (F.col (organizations.organization))) \ .withColumn (Exp_AdAccounts, F.explode (F.col (Exp_Organizations.ad_accounts))) \ .select (F.col (Exp_Organizations.id) .alias (“organizationId”), F.col (Exp_Organizations.name) .alias (“organizationName”), F.col (Exp_AdAccounts.id) .alias (“adAccountId”), F.col (Exp_AdAccounts.name) .alias (“adAccountName”), F.col (Exp_AdAccounts.timezone) .alias(“時區”))

當我們查詢dataframe它當我們做下麵的選擇(藏結果由於保密):

顯示器(adaccountsdf.select(“*”))或顯示(adaccountsdf)

圖像當我顯示dataframe我們得到以下模式:

根|——organizationId:字符串(nullable = true) |——organizationName:字符串(nullable = true) |——adAccountId:字符串(nullable = true) |——adAccountName:字符串(nullable = true) |——時區:字符串(nullable = true)

所以它應該的樣子。現在我們開始選擇過去3字段(adAccountId adAccountName和時區),我們得到以下錯誤:

圖像然而當我們選擇單個列它工作正常:

圖像

有人知道這是為什麼會發生呢?這是一個非常奇怪的錯誤,隻有出現在磚10.4運行時。以前所有運行時包括10.3、10.2、10.1和9.1 LTS工作好。這個問題似乎是由於使用爆炸函數已經列dataframe爆炸。

更新:

出於某種原因,當我運行adaccountsdf.cache ()之前我運行select語句的問題就消失了。還想知道是什麼導致了這個問題在運行時10.4而不是其他的。

11日回複11

Kaniz
社區經理
社區經理

嗨@Nirupam作者Nishant,隻是一個友好的後續。你還需要幫助,還是我的回答幫助你找到解決方案了嗎?請讓我們知道。

Nirupam
新的貢獻者三世

@Kaniz開羅

你的回答就足夠我查詢。謝謝!

此外,對於其他開發人員,後來我發現這些版本注釋也可以在主屏幕上你的磚工作區。

Kaniz
社區經理
社區經理

嗨@Nirupam作者Nishant,謝謝你的更新和為我們的社區成員有價值的消息。因為我的回答就足夠你查詢,你想馬克我的答案為最佳?

Nirupam
新的貢獻者三世

@Kaniz Fatma我沒有問原來的問題。

@Emiel Smeenk問和回答了自己的問題,指出問題是固定的(可能是由於最新補丁)。

Kaniz
社區經理
社區經理

不用擔心@Nirupam作者Nishant。你可以標記最好的答案。作為初始問題是回答@Emiel Smeenk本人,你可以標記他的回答是最好的。

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

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

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

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

Baidu
map