2014-07-14 3 views
0

지난 여름 우리는 인턴을 통해 Java에서 Apache Mahout 작업을 작성하여 일부 데이터에서 임의 포리스트 분류 분석을 수행했습니다. 이 작업은 Apache Mahout 0.7로 작성되었습니다.Apache Mahout - 데이터 세트 개체를 HDFS에 저장하는 방법?

이제 Apache Mahout 0.9를 실행하기 위해 환경을 업그레이드했으며 프로젝트가 더 이상 컴파일되지 않습니다. 이 한 줄 단순히 HDFS 위에 두싯 Dataset 객체를 저장하는 tyring됩니다

DFUtils.storeWritable(conf, datasetPath, dataset) 

이 컴파일되지 않는 한 줄입니다. Mahout 0.7에서 Dataset 클래스는 Hadoop.io.Writable 인터페이스를 구현했지만 버전 0.9에서는 Dataset 클래스가 Object 클래스를 단순히 확장합니다. 이 변경으로 인해 Dataset 개체를 매개 변수로 사용하면 storeWritable() 메서드에서 오류가 발생합니다.

내 프로젝트에서 Dataset 개체는 랜덤 포리스트 모델이 분석하려고하는 데이터를 설명하는 파일을 나타냅니다.

요약 https://mahout.apache.org/users/classification/partial-implementation.html

라인 :

hadoop jar mahout-core-0.9-job.jar org.apache.mahout.classifier.df.tools.Describe -p datasets/adult.data -f datasets/adult.data.info -d N C N C N 5 C 3 N C L 

그것은 "데이터 세트에 대한 파일 디스크립터를 생성"단계는이 링크에 설명 : 명령 줄을 통해 수행 할 경우이 단계입니다 위에서 실패한 것은 단순히 설명자 파일을 HDFS에 저장하려고 시도하는 것입니다. 누구든지 Mahout 0.9에서이를 수행 할 수있는 적절한 방법을 알고 있습니까?

모든 제안은 많은 도움이 될 것입니다.

답변

0

확실히 JSON으로 저장할 수 있습니다.

Text datasetText = new Text(dataset.toJson()); 
DFUtils.storeWritable(conf, datasetPath, datasetText) 

fromJson 메서드를 사용하여 역 직렬화 할 수 있습니다.

관련 문제