Spark 평균 성적 구하기
6722 단어 Spark
zhangsan math 88
zhangsan china 78
zhangsan english 80
lisi math 99
lisi china 89
lisi english 82
wangwu math 66
wangwu china 96
wangwu english 84
zhaoliu math 77
zhaoliu china 67
zhaoliu english 86.55
코드:
import org.apache.spark.{SparkConf, SparkContext}
object Avg extends App {
System.setProperty("hadoop.home.dir","d://soft/hadoop/hadoop-2.9.2")
val conf=new SparkConf().setMaster("local[*]").setAppName("avg")
var sc=new SparkContext(conf)
val lineRdd=sc.textFile(args(0))
val pairRdd=lineRdd.map( line => (line.split(" ")(1),line.split(" ")(2)))
val groupByRdd=pairRdd.groupByKey()
val resultRdd=groupByRdd.map(tuple=>{
var sum=0.0
val num=tuple._2.size
for(score<- tuple._2){
sum+=score.toDouble
}
val avg=sum/num
val formatAvg=f"$avg%.2f"
(tuple._1,formatAvg)
}).coalesce(1)
resultRdd.saveAsTextFile(args(1))
sc.stop()
}
결과:
(math,82.50)
(english,83.14)
(china,82.50)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spark Streaming의 통계 소켓 단어 수1. socket 단어 수 통계 TCP 소켓의 데이터 서버에서 수신한 텍스트 데이터의 단어 수입니다. 2. maven 설정 3. 프로그래밍 코드 입력 내용 결과 내보내기...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.