相关疑难解决方法(0)

通过执行本机极坐标命令而不是 UDF 函数来优化相似度分数的计算

免责声明 (1):这个问题支持这个 SO。在两位用户请求详细说明我的案例后。

免责声明 (2) - 29/11 添加:到目前为止,我已经看到了两种利用该功能的解决方案(在此 SO 中提出的以及支持性的解决方案)explode()。根据我对整个数据集(约 300 万行数据)所做的一些基准测试,RAM 确实会爆炸explode(),因此我将在数据集的样本上测试该函数,如果它有效,我将接受那些可能在较小的数据集上进行实验的人的方法解决方案表。

输入数据集(约 300 万行)来自80_000 个 IMDb 电影的 ml-latest 数据集以及 330_000 个用户的相应评分(您可以从此处ratings.csv下载 CSV 文件- 891mb)。

polars我使用like加载数据集movie_ratings = pl.read_csv(os.path.join(application_path + data_directory, "ratings.csv"))application_path并且data_directory是本地服务器上的父路径。

阅读数据集后,我的目标是生成用户在所有其他用户之间的余弦相似度。为此,首先我必须将评级表(约 300 万行)转换为每个用户 1 行的表。因此,我运行以下查询

## 1st computation bottleneck using UDF functions (2.5minutes for 250_000 rows)
users_metadata = movie_ratings.filter(
        (pl.col("userId") != input_id) #input_id is a random userId. I prefer …
Run Code Online (Sandbox Code Playgroud)

python user-defined-functions python-polars

5
推荐指数
1
解决办法
302
查看次数