私はデータセットtest1.txt
を持っています。以下のようなデータが含まれていますScalaでデータを集計する方法は?
2::1::3
1::1::2
1::2::2
2::1::5
2::1::4
3::1::2
3::1::1
3::2::2
以下のコードを使用してデータフレームを作成しました。
case class Test(userId: Int, movieId: Int, rating: Float)
def pRating(str: String): Rating = {
val fields = str.split("::")
assert(fields.size == 3)
Test(fields(0).toInt, fields(1).toInt, fields(2).toFloat)
}
val ratings = spark.read.textFile("C:/Users/test/Desktop/test1.txt").map(pRating).toDF()
2,1,3
1,1,2
1,2,2
2,1,5
2,1,4
3,1,2
3,1,1
3,2,2
しかし、私は以下のような出力を表示したいと考えています。重複した組み合わせを削除し、field(2) value sum of values1,1, 2.0
の代わりに削除します。
1,1,2.0
1,2,2.0
2,1,12.0
3,1,3.0
3,2,2.0
どうすればこの問題を解決できますか。
dataframe.groupBy( "column1"、 "column2")。sum( "column3")は動作します。 – Fabich
ありがとうございます –