1

我想以这样一种方式对数据进行分组,即对于特定记录,每个数组值也用于为该记录分组

我只能按名称分组。我无法弄清楚如何做到这一点。

我试过以下查询;

 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]                  |
  |-------|----------------------------|
4

0 回答 0