我想在hadoop程序中使用java.util.*中定义的hashmap类。
java中的hashmap是使用map d=new hashmap()示例化的;
当您使用上述行并使用hadoopjar编译时,它会抛出一个错误,因为map用于hadoop中不同的东西。
在搜索hadoop的hashmap等价物时,我偶然发现了hashmapwriteable
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())
2条答案
按热度按时间j8yoct9x1#
记住一件事:不能直接在hadoop文件系统上编写自定义类对象。您需要使用它们等价的可写类将它们存储到hdfs中。例如:您需要使用文本类而不是字符串(文本是字符串的可写版本)。类似地,如果Map包含自定义对象,则需要创建一个可写类并处理写入其中每个元素的逻辑。
7dl7o3gd2#
您可以尝试:
这样它将解析为所需的map类。