首页 > 解决方案 > 使用 Spark flatmap 展平嵌套数据,其中嵌套列表在 java 中以二进制形式存储

问题描述

我的 json 结构如下,我将在我的 Spark 数据框中接收到一行。

    {
    "id":"B07H3MVTSN",
    "mid":44444,
    "inner":{
      "type1":[{
          "cid":"B06XVVSLX8"
        },
        {
          "cid":"B06XJ2JZ2Z"
        },
        {
          "cid":"B06XJ2J12Z"
        }
      ],
      "type2":[{
          "cid":"B06XVVSLX1"
        },
        {
          "cid":"B06XJ2JZ22"
        },
        {
          "cid":"B06XJ2J123"
        }
      ]
    }
  }

该结构inner以二进制形式存储在数据帧中。

如何使用 Spark dataframe.flatmap() 将上述 json 结构展平为以下结构?

For every element in type1 and type2, there will be a row as follows

    cid          type1id       type2id           mid                 
B06XVVSLX8      B07H3MVTSN                      44444    
B06XJ2JZ2Z      B07H3MVTSN                      44444    
B06XJ2J12Z      B07H3MVTSN                      44444   
B06XVVSLX1                    B07H3MVTSN        44444    
B06XJ2JZ22                    B07H3MVTSN        44444    
B06XJ2J123                    B07H3MVTSN        44444  

标签: apache-spark-sql

解决方案


推荐阅读