Как я могу запросить вложенный тип массива, используя объединения, используя набор данных Spark?
В настоящее время я анализирую тип массива и выполняю объединение в наборе данных, где мне нужно удалить совпадающие данные.Но есть ли способ, при котором я могу напрямую запросить его без взрыва.
{
"id": 525,
"arrayRecords": [
{
"field1": 525,
"field2": 0
},
{
"field1": 537,
"field2": 1
}
]
}
Код
val df = sqlContext.read.json("jsonfile")
val someDF = Seq(("1"),("525"),("3")).toDF("FIELDIDS")
val withSRCRec =df.select($"*",explode($"arrayRecords")as("exploded_arrayRecords"))
val fieldIdMatchedDF= withSRCRec.as("table1").join(someDF.as("table2"),$"table1.exploded_arrayRecords.field1"===$"table2.FIELDIDS").select($"table1.exploded_arrayRecords.field1")
val finalDf = df.as("table1").join(fieldIdMatchedDF.as("table2"),$"table1.id"===$"table2.id","leftanti")
Идентификационные записи, имеющие fieldIds, должны быть удалены