gpt4 book ai didi

Hadoop Mapreduce 计算大数据的不同向量元素

转载 作者:可可西里 更新时间:2023-11-01 16:26:03 24 4
gpt4 key购买 nike

我的数据由 n-length 向量组成 integer/real numbers。数据通常为 GB 级别,向量的特征大小超过 100。我想计算每个向量特征的不同元素。例如,如果我有这样的数据:

1.13211 22.33 1.00 ... 311.66
1.13211 44.44 4.52 ... 311.66
1.55555 22.33 5.11 ... 311.66

我想要像 (2,2,3,...,1) 这样的结果只是一个向量。因为在向量的第一个特征中有 2 个不同的值,在第二个特征中有 2 个不同的值等等。

我认为使用 mapreduce 的方法是,从映射器 ("$val$+{feature_vector_num}",1) 发送值。例如 (1.13211+1,1) 或 (2.33+2,1)。在 reducer 中,只需将它们相加,可能还有第二个 mapper 和 reducer 来总结上一步的所有 reducer 结果。

问题是,如果我有大小为 N 的数据,使用我的解决方案,它发送到 reducer 的大小将是|V| * N 在最坏的情况下,(|V| 是特征向量的长度)同时这也是 reducer 的数量和 key 的数量。因此对于大数据来说,这是一个相当糟糕的解决方案。

您有什么建议吗?谢谢

最佳答案

在不考虑任何实现细节(MapReduce 与否)的情况下,我会分两步完成每个功能的哈希表(可能在 Redis 中)。

第一步将列出所有值和相应的计数。

然后第二个将遍历每个向量并查看元素是否在 hastable 中是唯一的。如果您有一定的容错余地,并且想要占用较少的内存,我什至会使用布隆过滤器。

这两个步骤被简单地并行化。

关于Hadoop Mapreduce 计算大数据的不同向量元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27829629/

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