如何使用以下两个数据集计算 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)
请帮助编写代码和示例输出,看看它的外观。
非常感谢