首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hadoop SequenceFile尺寸

Hadoop SequenceFile尺寸
EN

Stack Overflow用户
提问于 2012-10-10 10:31:08
回答 1查看 1.6K关注 0票数 1

我正在创建一个存储在HashMap中的Hadoop值对的SequenceFile。为了提高效率,我想知道键值对向量的长度,这样我就可以用适当的大小初始化HashMap。

我使用了Mahout的seqdumper,它在每一个倾倒向量的末尾附加了一个计数。我研究了它的代码,但是它使用了一个简单的迭代计数器(对于每一行counter++),因此不是我要找的。

SequenceFile.MetaData看起来也很有前途,所以我研究了一下。但是调试器显示它不包含任何条目。

还有其他方法可以快速获得类似于Hadoop的.size()方法吗?

编辑:这里的是我要转换成地图的seqdumper的输出。具体来说,每个键值对都是一个IntWritable / NamedVector对。我希望创建一个从键号到URI字符串的映射。总共有46599个键值对,由seqdumper在文件末尾追加。

代码语言:javascript
复制
Input Path: luceneVectors
Key class: class org.apache.hadoop.io.IntWritable Value Class: class org.apache.mahout.math.VectorWritable
Key: 0: Value: http://data.artsholland.com/production/73adae07-78c6-4180-93a4-34802090b5f1:{22118:0.18376858424635545,20381:0.40144184831236357,53753:0.2605347739121081,51569:0.2578896608715637,21930:0.2277873354603338,63035:0.27765920678967304,36979:0.2709104089668357,68351:0.15788776111071648,19436:0.2988119565549418,17991:0.12435264873296237,10356:0.3276902508762499,3410:0.27239123806574506,62942:0.18961849195965186,32527:0.24827631823639457,69909:0.11723303910369048,19832:0.2138117449778048}
Key: 1: Value: http://data.artsholland.com/production/c9fcc92b-18bb-4bfb-af52-380707f8d0d7:{41167:0.07191351238480857,61391:0.07496730342220936,[...]
[...],19156:0.0687215948604245}
Count: 46599
EN

回答 1

Stack Overflow用户

发布于 2012-10-10 19:54:46

不确定,我的答案是否有用,但是如果您需要知道seq文件中有多少键,则可以使用MapFile而不是SequenceFile。了解indexInterval,您可以通过读取密钥文件来估计密钥的数量。如果将indexInterval设置为相对较大的值,则可以维护较小的索引文件,并且仍然可以估计键数。作为额外的奖励,您可以得到您的密钥抽样,这可以帮助您进一步优化。

有关不同版本的SequenceFiles的更多详细信息,请参见http://www.cloudera.com/blog/2011/01/hadoop-io-sequence-map-set-array-bloommap-files/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12817252

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档