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

磚運行時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

Emiel_Smeenk
新的貢獻者三世

問題解決了自己的選擇,作為這篇文章的最好的答案。

謝謝,

Emiel

Kaniz
社區經理
社區經理

太棒了。謝謝@Emiel Smeenk:smiling_face_with_smiling_eyes:

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

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

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

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

Baidu
map