2017-03-01 1 views
1

Je suis nouveau dans apache crunch et à la recherche de lecture et d'écriture Lime à dossier en apache crunch. J'ai suivi la documentation et l'API mais je n'ai pas eu une approche/méthode directe pour faire la même chose.Écriture de fichier de parquet dans Apache Crunch

PCollection<String> pipeLine = MemPipeline.collectionOf("Pineapple", "Banana", "Orange"); 

PCollection<Integer> b = pipeLine.parallelDo(new DoFn<String, Integer>() { 

    private static final long serialVersionUID = 1L; 

    @Override 
    public void process(String input, Emitter<Integer> emitter) { 
     emitter.emit(input.length()); 
    } 
    }, ints()); 

    b.write(new AvroParquetFileTarget("D:\\Tutorials\\CCP_WorkSpace\\Crunch\\resources\\output")); 

Merci d'avance.

+0

Pourriez-vous s'il vous plaît modifier votre question avec les approches que vous avez essayé et les liens de la documentation que vous avez suivie. En outre, collez le code qui n'a pas fonctionné. :) –

+0

'PCollection pipeLine = MemPipeline.collectionOf (" Ananas "," Banane "," Orange "); \t \t PCollection b = pipeLine.parallelDo (nouveau DoFn () { \t \t \t longue finale statique privée serialVersionUID = 1 litre; \t \t \t @Override \t \t \t processus public void (entrée de la chaîne, l'émetteur de l'émetteur ) { \t \t \t \t emitter.emit (input.length()); \t} \t \t}, ints()); B.write (nouveau AvroParquetFileTarget ("D: \\ Tutorials \\ WorkSpace \\ Crunch \\ resources \\ output")); \t} ' –

+0

Merci @SagarKulkarni pour votre réponse, ci-dessus est le code que j'essaie. –

Répondre

1

si vous avez un schéma Avro et une classe compilée à partir qu'Avro qui contient la même structure de vos données de parquet, vous pouvez le lire de la manière suivante

AvroParquetFileSource<MyClassCompiled> avroParquetFileSource = 
new AvroParquetFileSource<MyClassCompiled>(
        new Path(input), Avros.records(MyClassCompiled.class) 
); 

et écrire parquet comme celui-ci

Target parquetFileTarget = new AvroParquetFileTarget(outputPath); 
mypcollection.write(avroParquetFileSource);