按数组中的某些记录分组(pyspark)

时间:2019-09-14 18:32:14

标签: pyspark pyspark-dataframes

我想对数据进行分组,以便对于特定记录,每个数组值也用于对该记录进行分组

我只能按名称分组。我无法找出解决方法。

我尝试了以下查询;

 import pyspark.sql.functions as f
 df.groupBy('name').agg(f.collect_list('data').alias('data_new')).show()

以下是数据框;

  |-------|--------------------|
  | name  |      data          |
  |-------|--------------------|
  |  a    | [a,b,c,d,e,f,g,h,i]|
  |  b    | [b,c,d,e,j,k]      |
  |  c    | [c,f,l,m]          |
  |  d    | [k,b,d]            |
  |  n    | [n,o,p,q]          |
  |  p    | [p,r,s,t]          |
  |  u    | [u,v,w,x]          |
  |  b    | [b,f,e,g]          |
  |  c    | [c,b,g,h]          |
  |  a    | [a,l,f,m]          |
  |----------------------------|

我期望以下输出;

  |-------|----------------------------|
  |  name |    data                    |
  |-------|----------------------------|
  |    a  | [a,b,c,d,e,f,g,h,i,j,k,l,m]|
  |    n  | [n,o,p,q,r,s,t]            |
  |    u  | [u,v,w,x]                  |
  |-------|----------------------------|

0 个答案:

没有答案