小编akr*_*ckz的帖子

使用 Spark Scala 计算平均值

如何使用以下两个数据集计算 Spark Scala 中每个位置的平均工资?

File1.csv(第4列是工资)

Ram, 30, Engineer, 40000  
Bala, 27, Doctor, 30000  
Hari, 33, Engineer, 50000  
Siva, 35, Doctor, 60000
Run Code Online (Sandbox Code Playgroud)

File2.csv(第2列是位置)

Hari, Bangalore  
Ram, Chennai  
Bala, Bangalore  
Siva, Chennai  
Run Code Online (Sandbox Code Playgroud)

以上文件未排序。需要加入这两个文件并找到每个地点的平均工资。我尝试使用下面的代码但无法成功。

val salary = sc.textFile("File1.csv").map(e => e.split(","))  
val location = sc.textFile("File2.csv").map(e.split(","))  
val joined = salary.map(e=>(e(0),e(3))).join(location.map(e=>(e(0),e(1)))  
val joinedData = joined.sortByKey()  
val finalData = joinedData.map(v => (v._1,v._2._1._1,v._2._2))  
val aggregatedDF = finalData.map(e=> e.groupby(e(2)).agg(avg(e(1))))    
aggregatedDF.repartition(1).saveAsTextFile("output.txt")  
Run Code Online (Sandbox Code Playgroud)

请帮助编写代码和示例输出,看看它的外观。

非常感谢

scala join apache-spark

3
推荐指数
1
解决办法
4万
查看次数

标签 统计

apache-spark ×1

join ×1

scala ×1