sc.makeRDD(Array(1,2,2,3,3,3),2)
.map(x=>(x,1))
.map(a => (a._1, (a._2, 1))) .reduceByKey((a,b) => (a._1+b._1,a._2+b._2)) .map(t => (t._1,t._2._1/t._2._2))

求一组数的平均值

val rdd = Array(1,2,2,3,3,3)
println(rdd.sum() / rdd.count())

求value的平均值

val rdd = Array(("tom",1),("tom",2),("alice"2))
val map = rdd.map(x => (1,x._2))
//求总和
val res = map.reduceByKey(_+_)
//求总个数
val l = map.count()
import org.apache.spark.sql.functions.mean val avgScore: Double = dataframe.withColumn("avg_score_column", mean("score_column")) .rdd.map(row => (row.getAs[Double]("avg_score"))).collect().apply(0)
val conf = new SparkConf().setAppName("hh") conf.setMaster("local[3]") val sc = new SparkContext(conf)val data = sc.textFile("/home/hadoop4/Desktop/i.txt") .map(_.split("\t")).map(f => f.map(
val a = List(1.0,2.0,3.0,4.0,5.0) val b = a.map(x=>(x,1.0)).reduce((x,y)=>(x._1+y._1,x._2+y._2)) val avg = b._1/b._2 下图是运行结果 注意:val b = a.map(x=>(x,1.0)).reduce((x,y)=>(x._1+x._2,y._1+y._2))这样求值
实验内容: 每个输入文件表示班级学生某个学科的成绩,每行内容由两个字段组成,第一个是学生名字,第二个是学生的成绩;编写spark独立应用程序求出所有学生的平均成绩。 下面是输入文件和输出文件的一个样例: Algorithm成绩: 小明 92 小红 87 小新 82 小丽 90 Database成绩: 小明 95 小红 81 小新 89 小丽 85 Python成绩: 小明 82 小红 83 小新 94 小丽 91 平均成绩如下: (小红,83.67) (小新,88.33) (小明,89.67) (小丽,88
1.前因后果 在网上看到了一种用Spark 求平均值 的算法,自己写了下,修改了一些错误,我这是能直接run起来的版本。我会在本文中对这段代码进行详细的讲解,以加强对reduceByKey用法的印象。耐心看完,保证你对reduceByKey算子理解且不会忘了。 首先把这位老哥测试的原始数据给大家: FFF 578 GGG 839 EEE 566 AAA 815 AAA 334 FFF 268...
{"bid": "1","品牌":"奥迪","厂商":"一汽-大众奥迪","csid":"5"} {"bid": "1","品牌":"奥迪","厂商":"奥迪(进口)","csid":"63"} {"bid": "1","品牌":"奥迪","厂商":"奥迪RS","csid":"276"} {"bid": "56","品
val listA = List(1,2,3,4,5) //foreach接收的是一个函数:其返回值是一个unit(空)类型 println(listA.foreach((x:Int)=>print(x.toString+" "))) //使用类型推断简化函数定义: println( Province("Beijing", 21540000), Province("Shanghai", 24240000), Province("Guangdong", 113460000), Province("Jiangsu", 80290000), Province("Zhejiang", 54426891) val grouped = provinces.groupBy(_.name) val averages = grouped.mapValues(provs => provs.map(_.population).sum.toDouble / provs.size) averages.foreach { case (province, avg) => println(s"$province: $avg") 输出结果为: Beijing: 21540000.0 Shanghai: 24240000.0 Guangdong: 37815000.0 Jiangsu: 40145000.0 Zhejiang: 18142297.0 其中,groupedBy 返回一个 Map,键为省份名称,值为该省份的 Province 对象列表。mapValues 对每个省份的 Province 列表进行处理,返回该省份的平均人口数量。最后,遍历平均数 Map 并输出每个省份的平均人口数量。 Mysql错误:check the manual that corresponds to your MySQL server version for the right syntax 223699 解决POSTMAN传参报错,JSON parse error: Cannot deserialize instance of `java.util.ArrayList` out of START_OB 50141