gpt4 book ai didi

apache-spark - 如何为 Spark RDD 中的元素分配唯一的连续编号

转载 作者:行者123 更新时间:2023-12-03 06:18:41 26 4
gpt4 key购买 nike

我有一个(用户、产品、评论)数据集,并希望将其输入到 mllib 的 ALS 算法中。

该算法需要用户和产品是数字,而我的是字符串用户名和字符串SKU。

现在,我获取不同的用户和 SKU,然后在 Spark 外部为它们分配数字 ID。

我想知道是否有更好的方法来做到这一点。我想到的一种方法是编写一个自定义 RDD,本质上枚举 1 到 n,然后对这两个 RDD 调用 zip。

最佳答案

Spark 1.0 开始,您可以使用两种方法轻松解决此问题:

  • RDD.zipWithIndex 就像 Seq.zipWithIndex 一样,它添加连续的(Long)数字。这需要首先计算每个分区中的元素,因此您的输入将被评估两次。如果您想使用它,请缓存您的输入 RDD。
  • RDD.zipWithUniqueId 还为您提供唯一的Long ID,但不能保证它们是连续的。 (只有当每个分区具有相同数量的元素时,它们才会是连续的。)好处是,这不需要了解有关输入的任何信息,因此不会导致双重评估。

关于apache-spark - 如何为 Spark RDD 中的元素分配唯一的连续编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23939153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com