Spark Scalaでの2つのデータセットでの平均所得を計算するにはどうすればよいですか?Spark Scalaを使用して平均を計算してください
File1.csv
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
上記ファイルがソートされていない(カラム4は給料です)。これらの2つのファイルを結合し、場所ごとの平均給与を見つける必要があります。私は以下のコードで試しましたが、それを作ることができません。
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")
どのように見えるかをコードとサンプル出力でお手伝いしてください。
多くのおかげ
最終的な出力は以下のようになりますか? + ------------------------ + |ロケーション| avg_salary | + ------------------------ + |バンガロール| 40000 | |チェンナイ| 500000 | + ------------------------ + – akrockz
もう1つの疑問..給料の代わりに、600 * 200(length * width )、この場合の平均値はどのように求められますか?ラム600 * 200ハリ700 * 300など... – akrockz