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

我們可以assigee默認值在火花中選擇列的sql列不存在?

Manojkumar
新的貢獻者二世

我閱讀avro文件並加載到表。avro數據嵌套數據。

從這個表我試圖使用火花sql提取必要的元素。使用爆炸函數當數組數據。現在麵臨的挑戰是有類似的元素需要提取可能不會出現在avro數據在這種情況下默認應該返回null值在select語句而不是拋出錯誤。

4回複4

Hubert_Dudek1
尊敬的貢獻者三世

通常,在這種情況下,我創建一個空表(模板)和所有必要的列,然後將數據附加到它。

所以讀Avro,爆炸,然後添加到模板表。

Manojkumar
新的貢獻者二世

你好休伯特,謝謝你的快速回複,

附加數據,提取數據從嵌套數據本身是失敗,以防如果各自獲得元素是失敗的。

例子:

| Col1 | col2 |

- - - - - - - - - - - - -

|你好| {1,B: 2, C: [BB AA: 11日:22]}

我的sql是像

選擇col2。b,爆炸(col2.c)選項卡;

現在在上述情況下如果C元素丟失然後上麵選擇應該不是失敗而是返回null。

好心的幫助

Hubert_Dudek1
尊敬的貢獻者三世

因為它需要一些操作,它將更容易處理它dataframe在Python中,您可以使用:

df.schema.fieldNames.contains (“col2.C”)

並應用邏輯accoridngly

UmaMahesh1
尊敬的貢獻者三世

嗨@manoj庫馬爾

一個簡單的方法是使用非托管三角洲表和裝載數據表的路徑時,您可以啟用mergeSchema是真實的。這種處理所有模式差異,裝進箱列不存在零和如果彈出新列,那麼所有前麵的記錄為空等。

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

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

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

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

Baidu
map