私は小売業向けの推奨システムを構築しています。私はPythonとSparkを使用します。2つの巨大なRDDのJoinまたはsubtractByKey
評価でも発生する予測のすべてのユーザープロダクトの組み合わせを除外しようとしています(以前はユーザーが購入したことのない値を予測しています)。
これら2つのRDD年代
はかなり大きく、1を使用しているとき、私はスパークsubtractByKeyのドキュメントを読んで最適であるとき、私はfilter_predictions = predictions.subtractByKey(user_boughtproduct)
を行うワーカーノードあたり28ギガバイト(3つのノード)に私のメモリの問題を与えています1つの小さいrdd。
user_boughtproductを小さくすることはできません(ループしない限り)。ただし、作成することはできます。
filter_predictions = predictions.join(user_nonBoughtProduct)
速いかのベストプラクティスであるそれらのどの任意の考え?または別のクリーナーソリューション。
です。別のアプローチに関するヒント – Kevin
正確な結果が必要ですか? – zero323
はい。 – Kevin