2011-08-15 1 views
3

을 감안할 때 데이터를 생성, 나는이 내가 전에 두싯 (예 : 클러스터링)(tag_uri image_uri image_uri image_uri ...) 다음과 같은 형식으로 SequenceFile에게

http://flickr.com/photos/tags/100commentgroup http://flickr.com/photos/[email protected]/4019040356 http://flickr.com/photos/[email protected]/5651576112 
http://flickr.com/photos/tags/100faves http://flickr.com/photos/[email protected]/5441742937 
... 

에 의해 추가 처리를 위해 하둡 SequenceFile 형식으로 만들어 놓을 필요 다음과 같이 입력을 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를 값으로 사용하여 각 행을 저장해야합니다. 이 작업을 수행하는 올바른 방법은 무엇입니까 (가능한 경우 각 행이 sequence_file에 어딘가에 포함되도록하기 위해 tag_url을 사용할 수 있습니까?).

일부 내가 찾은 참조하지만, 관련이 있다면하지 않도록 :

  • Writing a SequenceFile
  • Formatting input matrix for svd matrix factorization

      는 (나는이 양식에 내 매트릭스를 저장할 수 있습니까?) I 만 나열 이미지를 고려
    1. RandomAccessSparseVector (이 벡터를 사용하여 표현할 수 있습니까?)
    2. SequenceFile write
    3. SequenceFile explanation
  • 답변

    5

    링크 # 4에 설명 된 SequenceFile.Writer 만 있으면됩니다. 이렇게하면 키 - 값 쌍을 파일에 쓸 수 있습니다. 물론 키와 값은 유스 케이스에 달려 있습니다. 클러스터링 대 매트릭스 분해 대 협업 필터링은 모두 동일하지 않습니다. 하나가SequenceFile 형식이 아닙니다.

    키 또는 값이 Mahout Vector 일 가능성이 큽니다. Vector을 쓰는 방법은 VectorWritable입니다. 이것은 Vector을 랩핑하고 SequenceFile.Writer으로 작성하는 데 사용할 클래스입니다.

    예상 한대로 전달하는지 확인하기 위해 소비 할 작업을 조사해야합니다. 예를 들어, 클러스터링의 경우, I 이라고 생각하고 키는 무시되며 값은 Vector입니다.

    +0

    @sean, 지난 주 메일 링리스트에서 저에게 답장을 보내 주셨습니다. :) 답장을 보내 주셔서 감사합니다. – Jeffrey04

    +1

    네, 저도 똑같습니다. –