目錄
正確答案
首頁 後端開發 Python教學 無法分解 Spark 資料框中的巢狀 JSON

無法分解 Spark 資料框中的巢狀 JSON

Feb 11, 2024 am 10:51 AM
字串解析

无法分解 Spark 数据框中的嵌套 JSON

問題內容

我是 spark 新手。我試圖展平數據框,但未能透過「爆炸」做到這一點。

原始資料框架構如下:

id|approvaljson
1|[{"approvertype":"1st line manager","status":"approved"},{"approvertype":"2nd line manager","status":"approved"}]
2|[{"approvertype":"1st line manager","status":"approved"},{"approvertype":"2nd line manager","status":"rejected"}]
登入後複製

我需要將其轉換為以下架構?

id|approvaltype|status
1|1st line manager|approved
1|2nd line manager|approved
2|1st line manager|approved
2|2nd line manager|rejected
登入後複製

我已經嘗試過

df_exploded = df.withcolumn("approvaljson", explode("approvaljson"))
登入後複製

但是我得到了錯誤:

Cannot resolve "explode(ApprovalJSON)" due to data type mismatch:
parameter 1 requires ("ARRAY" or "MAP") type, however, "ApprovalJSON"
is of "STRING" type.;
登入後複製


正確答案


首先將類似json 的字串解析為結構數組,然後使用inline 將數組分解為行和列

df1 = df.withcolumn("approvaljson", f.from_json("approvaljson", schema="array<struct<approvertype string, status string>>"))
df1 = df1.select("id", f.inline('approvaljson'))
登入後複製

結果

df1.show()

+---+----------------+--------+
| ID|    ApproverType|  Status|
+---+----------------+--------+
|  1|1st Line Manager|Approved|
|  1|2nd Line Manager|Approved|
|  2|1st Line Manager|Approved|
|  2|2nd Line Manager|Rejected|
+---+----------------+--------+
登入後複製

以上是無法分解 Spark 資料框中的巢狀 JSON的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

c語言中parse函數怎麼用 c語言中parse函數怎麼用 Apr 28, 2024 pm 09:12 PM

parse 函數解析字串,將其轉換為由分隔符號分隔的令牌清單。步驟:1. 從字串開頭搜尋第一個非分隔符字元;2. 繼續搜尋直到遇到分隔符,並在該分隔符處終止字串;3. 將令牌儲存在令牌數組中;4 . 重複1-3 步,直到字串結束;5. 在陣列結尾加上指向NULL 的指針,表示陣列結束。

如何從 go 中的 jwt 令牌取得過期日期? 如何從 go 中的 jwt 令牌取得過期日期? Feb 14, 2024 pm 12:20 PM

我有一個jwt令牌,我可以在https://jwt.io/網站上看到解碼後的令牌。它不需要我設定任何秘密或聲明。所以我正在尋找一種方法來解碼令牌以獲得過期日期而不提供任何秘密。我正在使用庫ngopkg.in/square/go-jose.v2/jwt,下面是我的程式碼:token,err:=jwt.ParseSigned(jwtToken)返回值token有一個標頭字段,其中包括keyid、演算法,但它沒有給我過期日期。我搜尋過這個主題,人們說使用github.com/a

在golang中取得JSON格式的x-www-form-urlencoded請求的巢狀鍵值對 在golang中取得JSON格式的x-www-form-urlencoded請求的巢狀鍵值對 Feb 09, 2024 pm 03:15 PM

我有一個用例,我們在x-www-form-urlencoded主體中取得嵌套鍵值,如下所示name=abc&age=12&notes[key1]=value1&notes[key2]=value2我嘗試了url.parsequery("name= abc&age=12&notes\[key1\]=value1&notes\[key2\]=value2")但它給了{"name":"abc","age":12,"notes[key1]":"value1", "note

c++中 string轉int的方法 c++中 string轉int的方法 May 01, 2024 pm 01:27 PM

在 C++ 中,有兩種​​將 string 轉換為 int 的方法:使用 sto i() 函數,直接接收字串並傳回整數。使用 istringstream 類,將字串解析為輸入流,然後提取整數。選擇方法取決於字串格式:如果格式明確且無非數字字符,stoi() 更簡潔;如果字串可能包含非數字字元或需要自訂轉換,則 istringstream 更靈活。

java中parse是什麼意思 java中parse是什麼意思 Apr 28, 2024 pm 09:09 PM

Java中的parse指將字串或其他表示轉換為指定類型或物件的處理過程。常見的應用包括將字串轉換為數字類型、日期/時間物件、JSON物件以及從XML文件中提取資料。透過內建方法、格式化器類別或第三方函式庫進行parse。

Golang 常用函數位址解析指南 Golang 常用函數位址解析指南 Apr 08, 2024 pm 02:18 PM

Go語言中解析位址的關鍵函數包括:net.ParseIP():解析IPv4或IPv6位址。 net.ParseCIDR():解析CIDR標記。 net.ResolveIPAddr():解析主機名稱或IP位址為IP位址。 net.ResolveTCPAddr():解析主機名稱和連接埠為TCP位址。 net.ResolveUDPAddr():解析主機名稱和連接埠為UDP位址。

golang 如何使用反射動態修改變數值 golang 如何使用反射動態修改變數值 May 02, 2024 am 11:09 AM

Go語言反射允許在運行時操控變數值,包括修改布林值、整數、浮點數和字串。透過取得變數的Value,可以呼叫SetBool、SetInt、SetFloat和SetString方法來進行修改。例如,可以解析JSON字串為結構體,然後使用反射修改結構體欄位的值。需要注意,反射操作較慢,且無法修改不可修改字段,修改結構體字段值時可能不會自動更新相關字段。

深入了解PHP:JSON Unicode轉中文的實作方法 深入了解PHP:JSON Unicode轉中文的實作方法 Mar 05, 2024 pm 02:48 PM

深入了解PHP:JSONUnicode轉中文的實作方法在開發中,我們經常會遇到需要處理JSON資料的情況,而JSON中的Unicode編碼在一些場景下會為我們帶來一些問題,特別是當需要將Unicode編碼轉換為中文字元時。在PHP中,有一些方法可以幫助我們實現這個轉換過程,以下將介紹常用的方法,並提供具體的程式碼範例。首先,讓我們先來了解一下JSON中Un

See all articles