【问题标题】:Hashmap in HadoopHadoop中的哈希图
【发布时间】:2013-08-09 03:56:32
【问题描述】:

我想在hadoop程序中使用java.util.*中定义的hashmap类。

Java 中的 hashmap 是使用 Map D = new HashMap(); 实例化的;

当您使用上述行并使用 hadoop jar 编译时,它会引发错误,因为 Map 用于 hadoop 中的其他内容。

在搜索 hadoop 等效的 hashmap 时,我偶然发现了 HashMapWritable

http://lintool.github.io/Cloud9/docs/api/edu/umd/cloud9/io/map/HashMapWritable.html

一个使用 HashMapWritable 的示例程序如下所示:

http://trac.nchc.org.tw/cloud/browser/sample/hadoop-0.16/tw/org/nchc/tuple/HashMapWritable.java

我不想经历创建单独的类和为键和值定义单独的对象的痛苦。

有没有更简单的方法,我可以像在 Java 中那样在一行中实现它(我的意思是像 hashmap(key , value) H = new hashmap() 这样的简单方法)

【问题讨论】:

    标签: java hadoop hashmap key-value writable


    【解决方案1】:

    你可以试试:

    java.util.Map<K,V> map= new HashMap<K,V>();
    

    这样它将解析为您想要的 Map 类。

    【讨论】:

    • 最好使用泛型。
    • 编辑以添加@GriffeyDog 建议。
    【解决方案2】:

    记住一件事:您不能直接在 hadoop 文件系统上编写自定义类对象。您需要使用它们等效的可写类将它们存储到 HDFS 上。例如:您需要使用 Text 类而不是 String(Text 是 String 的可写版本)。同样,如果您的地图包含自定义对象,您需要创建一个可写类并处理编写其中每个元素的逻辑。

    【讨论】:

      猜你喜欢
      • 2022-12-10
      • 2013-03-21
      • 1970-01-01
      • 1970-01-01
      • 2017-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多