如何使用Spark Scala计算以下两个数据集中每个位置的平均薪资?
File1.csv(第4列为薪资)
上述文件未排序。需要合并这两个文件并查找每个地点的平均工资。我尝试使用以下代码,但无法成功。
请提供代码和样本输出,以便查看。
非常感谢。
File1.csv(第4列为薪资)
Ram, 30, Engineer, 40000
Bala, 27, Doctor, 30000
Hari, 33, Engineer, 50000
Siva, 35, Doctor, 60000
File2.csv(第2列为位置)
Hari, Bangalore
Ram, Chennai
Bala, Bangalore
Siva, Chennai
上述文件未排序。需要合并这两个文件并查找每个地点的平均工资。我尝试使用以下代码,但无法成功。
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")
请提供代码和样本输出,以便查看。
非常感谢。