【发布时间】:2019-11-02 04:28:22
【问题描述】:
我要统计每个数字的百分比。
rdd1=sc.parallelize([1,2,3,4,1,5,7,3])
我试过了
rdd2=rdd1.map(lambda x: (x, 1)).reduceByKey(lambda current, next: (current+next))
得到 rdd2.collect(): [(1,2),(2,1),(3,2),(4,1),(5,1),(7,1)] 那么
percentage=rdd2.map(lambda x:(x[0],(x[1]/rdd1.count())))
print(percentage.collect())
打印步骤出错 然后我尝试了
percentage=rdd2.map(lambda x:(x[0],(x[1]/len(rdd1.collect()))))
print(percentage.collect())
打印步骤也有错误。
【问题讨论】:
-
你到底想做什么?
-
rdd1中每个数字的百分比,比如1的百分比是2/8=25%