如何基于嵌套的Json构建Spark数据框架?

时间:2019-01-22 19:58:21

标签: scala apache-spark

我正在尝试使用基于嵌套JSON的scala创建新的spark数据框架。我已经定义了case类来映射传入的json。

示例JSON:

{
   "mapper":{
      "fact":[
         {
            "vendorLst":["110","120"],
            "flag":true,
            "upcLst":["10","20","30"],
            "startDate":20190101,
            "endDate":20190130,
            "idVal":"500"
         },
         {
            "vendorLst":["150"],
            "startDate":20180101,
            "endDate":null,
            "subVendorIdValue":null
         }
      ],
      "fact":[
         {
            "vendorLst":["200"],
            "startDate":null,
            "endDate":null,
            "idVal":null
         }
      ]
   }
}

想要构建如下所示的数据框。当该标志为true时,则需要使用upc映射每个供应商;而当该标志为false或不可用时,则不需要该供应商和upc之间的映射,并且相应的数据帧列可以更新为null。

vendorLst flag  upcLst  startDate   endDate idVal
110   TRUE  10  20190101    20190130    500
110   TRUE  20  20190101    20190130    500
110   TRUE  30  20190101    20190130    500
120   TRUE  10  20190101    20190130    500
120   TRUE  20  20190101    20190130    500
120   TRUE  30  20190101    20190130    500
150   FALSE null    20190101    null    null
200   FALSE null    null    null    null

0 个答案:

没有答案