我有大约200000个输出格式为seq2sparse的tfidf向量。现在我需要提取500,但不是随机像分裂函数。我知道其中500个的密钥,我需要它们的数据格式与seq2sparse中的相同。当我打开包含200000个条目的sequencefile时,我可以看到键是用org.apache.hadoop.io.text编码的,值是用org.apache.mahout.math.vectorwritable编码的。
但是当我尝试使用https://github.com/kevinweil/elephant-bird/blob/master/mahout/src/main/java/com/twitter/elephantbird/pig/mahout/vectorwritableconverter.java
和
https://github.com/kevinweil/elephant-bird/blob/master/pig/src/main/java/com/twitter/elephantbird/pig/store/sequencefilestorage.java
在pig拉丁语中,为了读写它们,输出的key和value都是org.apache.hadoop.io.text。
我确实需要这500个条目,因为我想在trainnb和testnb中使用它们。
基本上,这将是足够的,知道我如何可以做的事情,如马霍特seqdumper逆转。
1条答案
按热度按时间thigvfpy1#
虽然没有特定的mahout命令来执行此操作,但您可以使用mahout命令编写一个相对简单的实用程序函数:
以及:
您可以执行以下操作:
并使用“output500file”的路径作为trainnb的输入。使用vector.contains()并不是最有效的方法,但这是一般的想法。