다음과 같은 데이터가 있으며 다음 JSON 문서를 만들고 싶습니다. 스파크에서 어떻게하면됩니까? 스파크에서 가장 효율적인 방법은 무엇입니까? Spark의 열을 그룹화하고 집계하여 중첩 된 Json을 만드는 방법
name|contact |type
jack|123-123-1234 |phone
jack|[email protected] |email
jack|123 main street |address
jack|34545544445 |mobile
{
"name" : "jack",
"contacts":[
{
"contact" : "123-123-1234",
"type" : "phone"
},
{
"contact" : "[email protected]",
"type" : "email"
},
{
"contact" : "123 main street",
"type" : "address"
},
{
"contact" : "34545544445",
"type" : "mobile"
}
]
}
이 내가 제공하는 단지 샘플 사용 사례입니다
. 큰 데이터를 가지고 있는데 다중 열을 일부 그룹으로 묶어 하나의 행으로 접어야합니다. 논리.현재 접근 방식은 각 행을 읽고, 버퍼에 저장하고 병합하는 UDAF를 작성하는 것입니다. 그래서 코드는 내가 다른 방법이있을 수 있습니다 무엇을 알아 내려고 노력하고 있어요
val mergeUDAF = new ColumnUDAF
val tempTable = inputTable.withColumn("contacts",struct($"contact",$"type")
val outputTable = tempTable.groupby($"name").agg(mergeUDAF($"contacts").alias("contacts"))
될 것이다. 나는 스파크 SQL을 사용하여 이것을 달성하려고 노력하고있다.
질문에 대한 추가 정보를 제공해주십시오. 보여 주려는 것을 보여주십시오. –
@Thiago Baldim 죄송합니다. 질문이 더 자세하게 업데이트되었습니다. 감사. – hp2326