Многочисленные ошибки в части Mapper проекта MapReduce - PullRequest
0 голосов
/ 28 апреля 2019

Я очень начинающий программист, партнеры по проекту не могут писать код, нуждаются в помощи со школьным проектом сегодня вечером (работали над ним более недели). я пытаясь найти все описания видео, которые имеют слово "Fortnite" и более 10000 лайков (данные YouTube с https://www.kaggle.com/datasnaek/youtube-new). Я получаю доступ к данным из файла CSV, получаю многократные ошибки в части кода Mapper и не могу двигаться дальше, пока я не разрешу их. Это мой первый проект Java / MapReduce / Hadoop, и я просто не понимаю, что я делаю неправильно.

Запуск Java 1.8 и Eclipse IDE 2019-03 в 64-разрядной версии Windows 10. У меня одинаковая проблема на обоих компьютерах, поэтому я совершенно уверен, что это ошибка пользователя. Я занимаюсь этим уже больше недели и не могу понять.

 Clean code:
 package mapreduce,project;

 import java.io.IOException;
 import java.util.StringTokenizer;
 import org.apache.hadoop.io.IntWritable;
 import org.apache.hadoop.io.LongWritable;
 import org.apache.hadoop.io.Text;
 import org.apache.hadoop.mapreduce.Reducer;
 import org.apache.hadoop.mapreduce.Job;
 import org.apache.hadoop.mapreduce.Mapper;
 import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
 import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;
 import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
 import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
 import org.apache.hadoop.fs.Path;


 public class project extends Mapper<LongWritable, Text, Text, 
 IntWritable> 
 {

  public Text description = new Text();
  private IntWritable likes = new IntWritable(); 
  @Override
  public void map(LongWritable key, Text value, Context context)

  throws IOException, InterruptedException{

    String line = value.toString();
    String str[] = line.split("\t");
    if(str.length >= 9){
        description.set(str[8]);
    }
        likes = Integer.parseInt(str[8]); 
        if (likes >= 10000) {
       context.write("Fornite", count);
        } 
    } else  {
        return; 
      StringTokenizer itr = new StringTokenizer(line);

      while(itr.hasMoreTokens()){
       String token = itr.nextToken();
       if(token.contains("Fortnite")){
       word.set("Fortnite Count");
     context.write(word, new IntWritable(1));
       }
      }



  ````````````````````````````````````````````````
  Code with Errors:

  package mapreduce.project;
   ----> (Error: Main method not found in class 
  mapreduce.project.project, please define the main method as:
  public static void main(String[] args)


  public class project extends Mapper<LongWritable, Text, Text, 
  IntWritable> 
  {

  public Text description = new Text();
  private IntWritable likes = new IntWritable(); 
  @Override


  public void map(LongWritable key, Text value, Context context)
  -----> (ERROR: This sorce attachment does not contain the source for 
  the file Mapper.class. Change Attached Source....)

  throws IOException, InterruptedException{

    String line = value.toString();
    String str[] = line.split("\t");
    if(str.length >= 9){
        description.set(str[8]);
    }

        likes = Integer.parseInt(str[8]); ----> ( ERROR: Type mismatch: 
  cannot convert from int to INTWritable)



   if (likes >= 10000) {  ----->(ERROR: the operator >= is undefined for 
   the argument type(0) IntWriteable, int)

   context.write("Fornite", count);   (ERROR------> count cannot be 
   resolved to a variable)
        } 
    } else { ----->syntax error on "else" delete this token)
        return; 
      StringTokenizer itr = new StringTokenizer(line);

      while(itr.hasMoreTokens()){ 

       String token = itr.nextToken();
       if(token.contains("Fortnite")){
       word.set("Fortnite Count");
       context.write(word, new IntWritable(1));
       }
      }








Running the YouTube data through the MapReduce program, we expect to 
obtain a list of YouTube videos that mention Fortnite in the description 
have over 10,000 views.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...