데이터 세트가 test1.txt
입니다. 다음과 같은 데이터가 포함되어 있습니다.Scala를 사용하여 Spark에서 데이터를 집계하는 방법은 무엇입니까?
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
덕분에 작동 –