我有一个类似“signature[white space]date[white space]time”的密钥,但我希望所有具有相同签名的密钥都在同一个bin中。在这种情况下,如何写一份党报?致以最诚挚的问候,
omhiaaxx1#
默认情况下,使用hashparitioner,并使用整个hashcode来计算reducer数。为了完成您的任务,您只能散列部分密钥(在您的情况下是签名),并且具有相同签名的所有密钥将被分配给相同的缩减器。请尝试以下代码:
public class HashPartitioner<K, V> extends Partitioner<K, V> { public int getPartition(K key, V value,int numReduceTasks) { return key.toString().split("\s+")[0].hashCode() % numReduceTasks; } }
1条答案
按热度按时间omhiaaxx1#
默认情况下,使用hashparitioner,并使用整个hashcode来计算reducer数。为了完成您的任务,您只能散列部分密钥(在您的情况下是签名),并且具有相同签名的所有密钥将被分配给相同的缩减器。
请尝试以下代码: