我代表电影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