在这种情况下,如何为hadoop编写partioner?

2024-09-29 17:47:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个类似“signature[white space]date[white space]time”的密钥,但我希望所有具有相同签名的密钥都在同一个bin中。在这种情况下,如何写一份党报?你知道吗

致以最诚挚的问候


Tags: datebintime密钥情况spacesignaturewhite
1条回答
网友
1楼 · 发布于 2024-09-29 17:47:40

默认情况下,使用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;
   }
}

相关问题 更多 >

    热门问题