Python pyspark列计数

6ojccjat  于 2023-04-05  发布在  Spark
关注(0)|答案(1)|浏览(136)

我有这样一个数据集:
| 1区|2区|
| --------------|--------------|
| A|A|
| A|B|
| B|A|
| A|B|
| B|B|
我想要这个:
| 分类|区域|计数|
| --------------|--------------|--------------|
| A|区域1|三|
| B|区域1|第二章|
| A|2区|第二章|
| B|2区|三|
我尝试了一组由Zone 1和Zone 2,但它不返回良好的结果,如果有人可以帮助我
先谢了

fnvucqvd

fnvucqvd1#

堆叠 Dataframe ,然后执行groupby + count

expr = "stack(2, 'Zone 1', `Zone 1`, 'Zone 2', `Zone 2`) as (zone, category)"
result = df.selectExpr(expr).groupBy('category', 'zone').count()

结果

+--------+------+-----+
|category|  zone|count|
+--------+------+-----+
|       A|Zone 1|    3|
|       A|Zone 2|    2|
|       B|Zone 2|    3|
|       B|Zone 1|    2|
+--------+------+-----+

相关问题