我的问题相当于这两篇文章,不同的是我需要在pyspark中执行相同的操作(因为我在aws glue中工作)。
正在从中创建稀疏矩阵的s3Parquet文件中的数据示例:
clientID ProductID Purchased
1 1 1
1 2 1
2 1 1
2 3 1
3 2 1
n、 b.客户未购买时没有行。结果矩阵应该是稀疏的。
在我的样本中,我有53000个客户,他们购买了超过1000000种不同的产品。这将产生一个相互作用矩阵,约有530亿个细胞需要填充。看起来像这样:
1 2 3 ... 999,999 1,000,000
1 ...
2 1 1 ...
3 1 ... 1
4 1 ... 1
... ... ... ... ... ... ...
52,999 ... 1
53,000 1 ...
完整的非抽样数据集将有~10m个itemid和~10m个userid。目前,我已经将productid放在clientid上,以最小化计算并强制解决方案,但这并不能有效地扩展。
我对pyspark非常陌生,因此非常感谢您的帮助。
我特别感兴趣的是帮助将mon以前的答案从scala转换成pyspark,因为这可能是我正在寻找的解决方案。
暂无答案!
目前还没有任何答案,快来回答吧!