如何处理数据框架中列内的json数据集

2024-10-04 03:23:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我在spark中有一个dataframe,有一列包含json类型的数据

column3:
z:{
    k:{
        q1:null,
        q2:1,
        q3:23,
        q4:null,
        q5:{v1:null, v2:wers, v3:null}
        a1:['sdsad','wqeqw'],
        d1:'123_23'
    },
    l:{ 
        w1:wwew
        w2:null
        w4:123
    }
}

如何处理上述json中的内容并执行一些操作,如:分解列d1:“\u23”上的“123\u 23”并将其作为数据帧中的另一列添加

如何读取json中有多少键没有空值。如果有任何数组,那么如何计算该数组的元素

所以我的数据框是:

下面是示例数据帧:

col1 : gf23431  
col2 : 6728103  
col3 : "z:{
 k:{
  q1:null,
  q2:1,
  q3:23,
  q4:null,
  q5:{v1:null, v2:wers, v3:null}
  a1:['sdsad','wqeqw'],
  d1:'123_23'
 },
 l:{ 
  w1:wwew
  w2:null
  w4:123
 }
}"  
col4 : 3658

所需的输出列:

“k:”7下的总键数
键“k:”5下的非空值总数//具有非空值的键计数

按键“q5:”3下的按键总数
键“q5:”1下的总非空值
“a1:”2下的总值
拆分“d1:”下的值并添加另一列246//将第一个值乘以2并作为数据帧中的另一列添加

所以输出列将是:

col5 : 7
col6 : 5
col7 : 3
col8 : 1
col9 : 2
col10: 246

Tags: 数据jsona1v3nullv2d1v1