[英]Compare two Json files using Apache Spark
我是 Apache Spark 的新手,我正在嘗試比較兩個 json 文件。 我的要求是找出添加、刪除或修改哪個鍵/值以及它的路徑是什么。
為了解釋我的問題,我在這里分享了我用一個小的 json 示例嘗試過的代碼。
樣品 Json 1 是:
{
“員工”: {
“名稱”:“sonoo”,
“工資”:57000,
“已婚”:是的
} }
樣品 Json 2 是:
{
“員工”: {
“名稱”:“sonoo”,
“工資”:58000,
“已婚”:是的
} }
我的代碼是:
//Compare two multiline json files
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
//Load first json file
val jsonData_1 = sqlContext.read.json(sc.wholeTextFiles("D:\\File_1.json").values)
//Load second json file
val jsonData_2 = sqlContext.read.json(sc.wholeTextFiles("D:\\File_2.json").values)
//Compare both json files
jsonData_2.except(jsonData_1).show(false)
我在執行此代碼時得到的 output 是:
+--------------------+
|employee |
+--------------------+
|{true, sonoo, 58000}|
+--------------------+
但是這里只修改了一個字段,即薪水,因此 output 應該只是更新后的字段及其路徑。
以下是預期的 output 詳細信息:
[
{
"op" : "replace",
"path" : "/employee/salary",
"value" : 58000
}
]
誰能指出我正確的方向?
假設每個 json 都有一個標識符,並且您有兩個 json 組(例如文件夾),您需要對兩組中的 json 進行黑白比較:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.