GroupByKey 并创建值列表 pyspark sql 数据框 [英] GroupByKey and create lists of values pyspark sql dataframe
本文介绍了GroupByKey 并创建值列表 pyspark sql 数据框的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
所以我有一个如下所示的 spark 数据框:
a |乙 |C5 |2 |15 |4 |32 |4 |22 |3 |7
我想按 a 列分组,从 b 列创建一个值列表,而忘记 c.输出数据帧将是:
a |列表5 |(2,4)2 |(4,3)
我将如何使用 pyspark sql 数据框执行此操作?
谢谢!:)
解决方案
以下是获取该 Dataframe 的步骤.
<预><代码>>>>from pyspark.sql 导入函数为 F>>>>>>d = [{'a': 5, 'b': 2, 'c':1}, {'a': 5, 'b': 4, 'c':3}, {'a': 2,'b': 4, 'c':2}, {'a': 2, 'b': 3,'c':7}]>>>df = spark.createDataFrame(d)>>>df.show()+---+---+---+|一个|乙|| |+---+---+---+|5|2|1||5|4|3||2|4|2||2|3|7|+---+---+---+>>>df1 = df.groupBy('a').agg(F.collect_list("b"))>>>df1.show()+---+---------------+|a|collect_list(b)|+---+---------------+|5|[2, 4]||2|[4, 3]|+---+---------------+So I have a spark dataframe that looks like:
a | b | c
5 | 2 | 1
5 | 4 | 3
2 | 4 | 2
2 | 3 | 7
And I want to group by column a, create a list of values from column b, and forget about c. The output dataframe would be :
a | b_list
5 | (2,4)
2 | (4,3)
How would I go about doing this with a pyspark sql dataframe?
Thank you! :)
解决方案
Here are the steps to get that Dataframe.
>>> from pyspark.sql import functions as F
>>>
>>> d = [{'a': 5, 'b': 2, 'c':1}, {'a': 5, 'b': 4, 'c':3}, {'a': 2, 'b': 4, 'c':2}, {'a': 2, 'b': 3,'c':7}]
>>> df = spark.createDataFrame(d)
>>> df.show()
+---+---+---+
| a| b| c|
+---+---+---+
| 5| 2| 1|
| 5| 4| 3|
| 2| 4| 2|
| 2| 3| 7|
+---+---+---+
>>> df1 = df.groupBy('a').agg(F.collect_list("b"))
>>> df1.show()
+---+---------------+
| a|collect_list(b)|
+---+---------------+
| 5| [2, 4]|
| 2| [4, 3]|
+---+---------------+
这篇关于GroupByKey 并创建值列表 pyspark sql 数据框的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文