给定以下格式的数据(tag_uri image_uri .),我需要将它们转换为Hadoop SequenceFile格式供Mahout进一步处理(例如集群)
http://flickr.com/photos/tags/100commentgroup http://flickr.com/photos/34254318@N06/4019040356 http://flickr.com/photos/46857830@N03/5651576112
http://flickr.com/photos/tags/100faves http://flickr.com/photos/21207178@N07/5441742937
...在此之前,我将将输入转换为csv (或arff),如下所示
http://flickr.com/photos/tags/100commentgroup,http://flickr.com/photos/tags/100faves,...
0,1,...
1,1,...
...每一行描述一个标记。然后,将arff文件转换为mahout用于进一步处理的向量文件。我试图跳过arff生成部分,转而生成一个sequenceFile。如果我没有弄错,要将我的数据表示为sequenceFile,我需要用$tag_uri作为键存储数据的每一行,然后以$image_vector作为值。做这件事的正确方法是什么(如果可能的话,我可以让每个行的tag_url包含在某个顺序文件中)?
我发现了一些引用,但不确定它们是否相关:
发布于 2011-08-15 10:08:07
您只需要一个SequenceFile.Writer,这在您的链接#4中已经解释过了,它允许您将键值对写入文件。当然,关键和价值取决于您的用例。集群与矩阵分解和协作过滤完全不同。没有一种SequenceFile格式。
关键或值很可能是Mahout Vector。知道如何编写Vector的东西是VectorWritable。这是您用来包装Vector并用SequenceFile.Writer编写它的类。
您需要查看将消耗它的作业,以确保您正在传递它所期望的内容。例如,对于集群,我认为键被忽略了,值是Vector。
https://stackoverflow.com/questions/7062327
复制相似问题