Come leggere il file Hadoop sequenziale come input per il lavoro Hadoop?
-
27-10-2019 - |
Domanda
Ho un file sequenziale che ha il coppia chiave-valore di tipo "org.apache.hadoop.typedbytes.TypedBytesWritable" , devo fornire questo file come l'ingresso al lavoro e Hadoop devono elaborare solo in mappa. Voglio dire non devo fare nulla che ridurrà bisogno.
1) Come faccio a specificare il FileInputFormat come SequentialFile?
2) Quale sarà la firma di funzione di mappa.
3) Come faccio a ottenere l'output dalla mappa, invece di Riduzione?
Soluzione
1) Come faccio a specificare il FileInputFormat come SequentialFile?
SequenceFileAsBinaryInputFormat come formato di input. Ecco la codice per la classe SequenceFileAsBinaryInputFormat.
Ecco il codice
JobConf conf = new JobConf(getConf(), getClass());
conf.setInputFormat(SequenceFileAsBinaryInputFormat.class);
2) Quale sarà la firma di funzione di mappa.
La mappa dovrebbe essere richiamato con un BytesWritable come tipi di chiavi e valori.
3) Come faccio a ottenere l'output dalla mappa, invece di Riduzione?
Impostare la proprietà mapred.reduce.tasks
a 0. L'uscita della mappa sarà il risultato finale del lavoro.
Inoltre, date un'occhiata alla SequenceFileAsTextInputFormat . La mappa sarebbe invocata con il testo come tipi di chiavi e valori.