我代表電影IDS(第一列)和評級爲不同的用戶對於電影中的其餘列如下數據結構 - 這樣的事情:星火斯卡拉:轉換任意N列到地圖
+-------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
|movieId| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 12| 13| 14| 15|
+-------+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+
| 1580|null|null| 3.5| 5.0|null|null|null|null|null|null|null|null|null|null|null|
| 3175|null|null|null|null|null|null|null|null|null|null|null|null|null| 5.0|null|
| 3794|null|null|null|null|null|null|null|null|null|null|null| 3.0|null|null|null|
| 2659|null|null|null| 3.0|null|null|null|null|null|null|null|null|null|null|null|
我想這個數據幀因此,它會像
轉換成的final case class MovieRatings(movie_id: Long, ratings: Map[Long, Double])
一個DataSet
[1580, [1 -> null, 2 -> null, 3 -> 3.5, 4 -> 5.0, 5 -> null, 6 -> null, 7 -> null,...]]
等等
這可怎麼辦呢?
這裏的事情是用戶數量是任意的。我想將這些壓縮到一個列中,並保持第一列不變。
的可能的複製[火花2.0 - 轉換數據幀到數據集(https://stackoverflow.com/questions/40700213/spark-2 -0-convert-dataframe-to-dataset) – Pavel
我不認爲這是重複的,因爲這個問題是我該怎麼做,這個問題是我正在嘗試這樣做,它不工作,噢等待,我需要升級Spark。這個問題是要求一個教程,因此是脫離主題。 – jmarkmurphy