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

驗證模式的json列

Braxx
因素二世

我有一個與col2 dataframe像下麵的鍵-值對。我想過濾col2隻有行有效的模式。

df可能有很多的對,有時更少,有時更多,這是罰款,隻要結構很好。col2也允許null。

錯誤的價值觀就像在例4和5的“名稱”或“價值”是缺失或缺乏括號[]

模式:

[{“名稱”:“aa”、“價值”:“abc”},{“名稱”:“bb”、“價值”:“12”},{“名稱”:“cc”、“價值”:“3”}]

數據樣本:

col1 col2 1[{“名稱”:“aaa”、“價值”:“5”},{" name ": " bbb ", " value ": " 500 "},{"名稱":“ccc”、“價值”:" 300 "}]2[{“名稱”:“aaa”、“價值”:“5”},{" name ": " bbb ", " value ": " 500 "}) 3 4{“名稱”:“aaa”、“價值”:“5”},{" name ": " bbb ", " value ": " 500 "} 5[{“名稱”:“aaa”}, {" name ": " bbb ", " value ": " 500 "})

12個回複12

數據表由另一個進程從蜂巢。必要時我可以拚花

werners1
尊敬的貢獻者三世

不是一個文字回答:

https://docs.www.eheci.com/spark/latest/dataframes-datasets/complex-nested-data.html

//www.eheci.com/blog/2017/02/23/working-complex-data-formats-structured-streaming-apache-spar..。

你可以嚐試使用定義實現這一模式,然後讀表,或者正則表達式等更先進的技術。

有一些選項在處理嵌套數據正如您將看到的。

你甚至可以使用三角洲湖和檢查約束。

(https://docs.microsoft.com/en-us/azure/databricks/delta/delta-constraints)

Braxx
因素二世

驗證結構是正確的我試著json.load。它應該利用錯誤是錯誤的或者真實的如果它是正確的。然後,我隻會篩選真正的。annihilate我對下麵的錯誤代碼,當解決可以為我工作。

“TypeError:列不是iterable”

def is_json (myjson):: x myjson: json.loads (x)除了ValueError e: \ .withColumn返回False返回True df =數據(“Col3 is_json (col (“Col2”))) \ .filter(坳(Col3) = = True)

werners1
尊敬的貢獻者三世

你想遍曆DF-column,問題列不是iterable。

如果你給列的列名而不是本身應該工作。

但json。加載可能不知道該做什麼,但你也可以添加dataframe作為參數的函數。

Braxx
因素二世

謝謝。不是很明白你意思“添加dataframe作為函數參數”。你能夠草案嗎?我可以測試它嗎?

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

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

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

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

Baidu
map