apache-spark - GroupByKey并创建值列表pyspark sql dataframe

标签 apache-spark group-by spark-dataframe pyspark-sql

所以我有一个 Spark 数据框,看起来像:

a | b | c
5 | 2 | 1
5 | 4 | 3
2 | 4 | 2
2 | 3 | 7

我想按列和列进行分组,从b列中创建值列表,而忽略c。输出数据帧将是:
a | b_list
5 | (2,4)
2 | (4,3)

我将如何使用pyspark sql数据框执行此操作?

谢谢! :)

最佳答案

以下是获取该数据框的步骤。

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

关于apache-spark - GroupByKey并创建值列表pyspark sql dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40945174/

相关文章:

python - pandas groupby 并用另一列的第一个值减去一列的最后一个值

scala - 使用Spark访问数据框中的列

scala - 使用 Spark 处理 txt 文件

apache-spark - 什么是以及如何在Web UI的“执行程序”选项卡中控制内存存储?

javascript - 使用多个分组查找哈希数组的平均值

mysql - SQL - 来自 3 个表的结果,聚合函数

hadoop - Spark RDD 抛出 NullPointerException

hadoop - 如何使用 Spark Map Reduce 将一堆 Parquet 文件联合在一起?

python - Spark RDD 到 DataFrame python

apache-spark - 加入两个连接键不同的DataFrames,只选择一些列