为mahout编写java代码时出错

qvtsj1bj  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(381)

我对apache mahout很陌生。我试图在我的环境中使用你的代码,但我面临一些问题。我知道这个帖子很旧,你可能不会回复我的问题。但我写作,因为我被卡住了。
我试图在我的环境中配置maven,但是由于公司的策略,我无法成功地配置它,所以我决定手动解析依赖项,并逐个安装所有必需的依赖项。但我找不到最后一个图书馆,我试着在网上找了两天,但没有运气。也许有人能帮我。
我正在使用eclipse sts。我确实尝试过EclipseMars2,但同样的问题。我已经安装了以下一组特定于项目的库。
commons-cli-2.0.jar、google-collection-1.0.jar、hadoop-0.20.1-core.jar、log4j-1.2.13.jar、mahout-core0.2-source.jar、mahout-core0.3-source.jar、mahout-core0.4-job.jar、mahout-core0.7.jar、mahout-core0.8.jar、mahout-math-0.8.jar、mahout-utils-0.5.jar、slf4j-api-1.6.1.jar、slf4j-log4j12-16.1.jar、jre系统库(javase-1.8)。
我尝试了各种排列组合的图书馆,希望能完成我的工作。不幸的是,它没有发生,也许你可以帮我。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.FileReader;
import java.util.List;
import org.apache.hadoop.fs.Path;
import org.apache.mahout.classifier.ClassifierResult;
import org.apache.mahout.classifier.bayes.TrainClassifier;
import org.apache.mahout.classifier.bayes.algorithm.BayesAlgorithm;
import org.apache.mahout.classifier.bayes.common.BayesParameters;
import org.apache.mahout.classifier.bayes.datastore.InMemoryBayesDatastore;
import org.apache.mahout.classifier.bayes.exceptions.InvalidDatastoreException;
import org.apache.mahout.classifier.bayes.interfaces.Algorithm;
import org.apache.mahout.classifier.bayes.interfaces.Datastore;
import org.apache.mahout.classifier.bayes.model.ClassifierContext;
import org.apache.mahout.common.nlp.NGrams;

public class Starter {

    //char var1;
 public static void main( final String[] args ) {
  final BayesParameters params = new BayesParameters();
  params.setGramSize( 1 );
  params.set( "verbose", "true" );
  params.set( "classifierType", "bayes" );
  params.set( "defaultCat", "OTHER" );
  params.set( "encoding", "UTF-8" );
  params.set( "alpha_i", "1.0" );
  params.set( "dataSource", "hdfs" );
  params.set( "basePath", "/tmp/output" );

  //var1 = text.csv;

  try {
      Path input = new Path( "D:\\Apache\\text.csv" );
      Path output = new Path( "D:\\Apache\\output" );
      TrainClassifier.trainNaiveBayes( input, output, params );

      Algorithm algorithm = new BayesAlgorithm();
      Datastore datastore = new InMemoryBayesDatastore( params );
      ClassifierContext classifier = new ClassifierContext( algorithm, datastore );
      classifier.initialize();

      final BufferedReader reader = new BufferedReader( new FileReader( args[ 0 ] ) );
      String entry = reader.readLine();

      while( entry != null ) {
          List< String > document = new NGrams( entry,
                          Integer.parseInt( params.get( "gramSize" ) ) )
                          .generateNGramsWithoutLabel();

          ClassifierResult result = classifier.classifyDocument(
                           document.toArray( new String[ document.size() ] ),
                           params.get( "defaultCat" ) );

          entry = reader.readLine();
      }
  } catch( final IOException ex ) {
   ex.printStackTrace();
  } catch( final InvalidDatastoreException ex ) {
   ex.printStackTrace();
  }
 }
}

下面是错误messages:-
线程“main”java.lang.nosuchmethoderror中出现异常:org.apache.mahout.common.hadooputil.overwriteoutput(lorg/apache/hadoop/fs/path;)v
在org.apache.mahout.classifier.bayes.mapreduce.bayes.bayesdriver.runjob(bayesdriver。java:39)
在org.apache.mahout.classifier.bayes.trainclassifier.trainnaivebayes(trainclassifier。java:54)
在起动机处。主(起动机。java:42)
我试着在互联网上到处寻找“org.apache.mahout.common.hadooputil.overwriteoutput”,但是我没有找到,有一些名为“org.apache.mahout.common.hadooputil”的库,但是它没有包含所需的子库。
请帮忙。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题