map reduce程序在hadoop框架中实现数据结构

时间:2015-04-07 07:44:09

标签: java hadoop mapreduce

这是Hadoop中的数据结构实现。我想使用map-reduce编程在Hadoop中实现索引。 第1部分=我想在表中使用索引号将每个单词存储在该文本文件中。 [能够完成] 第2部分=现在我想为这个新创建的表执行散列[无法完成] 第一部分我能够完成,但第二部分我面临困难 假设我有一个包含3行的文本文件:     你的工作怎么样?     你的家人好吗     嗨你好吗

我想使用索引存储此文本文件。我有map-reduce代码返回每个单词的索引值,这个索引值我能够存储在索引表(哈希表)中    包含每个单词的索引值的输出: 怎么0, 14怎么样, 是3, 是18岁, 工作12, 你的7,

现在要存储在哈希表中,对模块中的每个单词(索引值)应用散列(文件中不同元素的数量),然后说4.对于单词的每个索引值并应用散列函数(模块'%&# 39;)存储在哈希表中。如果相同位置发生碰撞,请转到下一个位置并存储。

  0%4=0(store 'how' at hash index 0)
  14%4=2(store 'how' at has index 2)
  18%4=2(store 'is' at hash index 3 because of collision) 
  7%4=3 (store 'your' at index 4 because of collision)

1 个答案:

答案 0 :(得分:1)

您可以创建Hashtable对象并放置键和值。

Hashtable hashtable = new Hashtable(); 

如何找到钥匙? 答。你有完全不同的单词数和单词的索引。       key = index%no of distinct words       value = word

在哈希表中插入记录之前,检查该键是否发生冲突。 如何检查碰撞发生? 答。

boolean collision=hashtable.containsKey(key);  

如果碰撞为真,则线性检查键+ 1,键+ 2,......当碰撞发生错误时,使用下面的行在哈希表中插入键和值。

hashtable.put(key,value);