协同过滤的多个功能 - 火花

时间:2015-11-26 00:09:24

标签: python apache-spark pyspark collaborative-filtering apache-spark-mllib

我的CSV文件如下:

customer_ID, location, ....other info..., item-bought, score

我正在尝试在Spark中构建一个协作过滤推荐器。 Spark采用以下形式的数据:

userID, itemID, value

但我的数据更长,我想要使用所有用户的信息而不仅仅是userID。我尝试将列分组在一列中:

(customerID,location,....),itemID,score

但是ALS.train给了我这个错误:

  

TypeError:int()参数必须是字符串或数字,而不是' tuple'

如何让spark获取多个键/值而不仅仅是三列? 感谢

1 个答案:

答案 0 :(得分:1)

对于每个客户,请确定要用于区分这些用户实体的列。创建一个表(例如在SQL中),其中每行包含一个用户实体的信息,并使用此表中的行号作为userID。

如有必要,请对您的商品执行相同操作,并将这些ID提供给您的分类器。