2014-12-19 3 views
1

Кто-нибудь знает, как пропустить первую строку входного текстового файла в MapReduce? Например, у меня есть следующий входной файл:MapReduce пропустить первую строку входного файла

Student Score 
00001 90 
00002 95 
00003 90 
     . 
     . 
     . 

Теперь я хотел бы рассчитывать частоту каждого баллов. Но я должен пропустить первую строчку, которая является названием (Student, Score), правильно? Как я могу это сделать? В contratry, если я хочу добавить строку заголовка в выходной файл MapReduce (Score, Frequency), как я могу это сделать? Заранее спасибо!

+0

Возможный дубликат [Обработка файлов с заголовками в Hadoop] (http://stackoverflow.com/questions/1104336/processing-files-with-headers-in-hadoop) – nelsonda

+0

и возможный дубликат http: // stackoverflow. com/questions/27854919/how-to-skip-header-from-csv-files-in-spark – jimijazz

ответ

-3
import java.util.Scanner; 
import java.io.*; 
public class MyNameSpace{ 

public static void main(String[] args) 
{ 
    try 
    { 
     Scanner c=new Scanner(new FileInputStream("filepath")); 
     c.nextLine();//this gets the next line, since not assigning it to anything it just skips , if you want it, assign it to a string and use it 
     //now read what you want to read 
     c.close(); 
    } 
    catch(FileNotFoundException e) 
    { 
     //process exception here 
    } 
} 

} 

В любом случае, я ожидаю, что на ваш вопрос будет найдено много ответов на google, поэтому приложите много усилий для поиска, прежде чем спрашивать здесь.

+1

Я ожидаю пропустить первую строку в процессе MapReduce, а не писать отдельную программу для этого. – AlwaysIng

+0

, поэтому вы хотите обработать большой файл со многими программами, это сопоставление, а затем уменьшить его, как вы все равно разделите файл? – niceman

+1

Просто для записи это нехорошее решение. Он удалит первую строку для каждого картографа. Поэтому, если ваш файл больше, чем один блок HDFS, здесь здесь будут удалены неожиданные строки из середины файла. – nelsonda

Смежные вопросы