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

當和其他問題

SailajaB
重視貢獻三世

你好,

在我們的場景中我們讀取json文件作為輸入,並包含嵌套結構。的一些屬性結構體數組類型。我們需要改變名字的嵌套的。我們創建了一個新的結構和做演員。

我們正麵臨著以下問題在做

例:測試是進行結構體類型

{“測試”:[{“nestedattr1”:“df”、“columnfield”:“呃”}]

我們需要一個以上

{“測試”:[{“nestedAttr1”:“df”、“columnField”:“呃”}]

我們定義了一個新的結構和應用但當我們正在接受測試作為一個空數組{“測試”:[]}鑄造越來越失敗了。所以我們試圖應用下麵的代碼,但它不工作

df = df.withColumn(“測試”,當(大小(df.test) > 0,坳(“測試”).cast (newteststruct)) .otherwise (df.test))

錯誤:不能解決的“測試”由於數據類型不匹配:不能把數組<字符串>陣列<結構>

請添加你的評論來避免這個問題

6個回答6

SailajaB
重視貢獻三世

因為我認為那和其他表達式應該具有相同的類型。我認為是的

但我們不需要把{“測試”:[]}{“測試”:[{“nestedattr1”:“”,“columnfield”: "})}

如果我們得到測試作為一個空數組,我們應該避免這種轉換

如果我們得到測試{“測試”:[{“nestedattr1”:“df”、“columnfield”:“呃”}]然後進行轉換

有什麼方法可以實現這一目標?主要是在模式級別而不是在每一列的水平

SailajaB
重視貢獻三世

我們使用以下條件解決問題

如果dict (df.dtypes)['測試']! =“數組<字符串>”:

df = df.withColumn(“測試”,(“測試”)上校.cast (newteststruct))

謝謝你!

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

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

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

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

Baidu
map