我的推荐输入数据如下:
[(u'97990079', u'18_34', 2),
(u'585853655', u'11_8', 1),
(u'1398696913', u'6_20', 1),
(u'612168869', u'7_16', 1),
(u'2272846159', u'11_17', 2)]
其格式为(user_id, item_id, score)
。在
如果我理解正确的话,spark中的ALS必须在训练前将user_id
,item_id
转换成整数?如果是这样的话,我现在唯一能想到的解决方案就是使用字典,并将每个user_id
和{
但我想知道有没有其他优雅的方法可以做到这一点?谢谢!在
处理这个问题的一种方法是使用ML转换器。首先,将数据转换为数据帧:
接下来我们需要一个
^{pr2}$StringIndexer
最后,使用索引器转换数据帧:
并转换为
RDD[Rating]
:在Spark的新版本中,您可以跳过转换,直接使用
ml.recommendation.ALS
:相关问题 更多 >
编程相关推荐