查看“PySpark实战:groupByKey操作”的源代码
←
PySpark实战:groupByKey操作
跳转至:
导航
,
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
==介绍== groupByKey操作是一个变换算子, 它将RDD中每个键的值分组为单个序列, 用numPartitions分区对生成的RDD进行哈希分区,并返回一个新的RDD对象。 ==代码== <nowiki> import findspark findspark.init() ############################################## from pyspark.sql import SparkSession spark = SparkSession.builder \ .master("local[1]") \ .appName("RDD Demo") \ .getOrCreate(); sc = spark.sparkContext ############################################# rdd = sc.parallelize([("a", 1), ("b", 1), ("a", 1)]) rdd2 = rdd.groupByKey() #按照key进行分组 def f(x): print(x) return len(x) rdd2 = rdd2.mapValues(f)#计算每组有多少个 # [('a', 2), ('b', 1)] print(rdd2.collect()) def f2(x): #print(x) return list(x) #rdd2 = rdd.groupByKey().mapValues(list) rdd2 = rdd.groupByKey().mapValues(f2)#以列表的形式,查看每组都有哪些元素 # [('a', [1, 1]), ('b', [1])] print(rdd2.collect()) ############################################## sc.stop() </nowiki> *如果要分组以便对每个键执行聚合,例如求和或平均值,则建议使用reduceByKey 或AggregateByKey,因为他们可以提供更好的性能。 ==输出== [('a', 2), ('b', 1)] [('a', [1, 1]), ('b', [1])]
返回至
PySpark实战:groupByKey操作
。
导航菜单
个人工具
登录
命名空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息