2017-03-01 73 views
1

我是apache緊縮中的新人,正在尋找閱讀和編寫apache緊縮中的Parquet文件。 我跟着文檔和API,但沒有得到直接的方法/做同樣的方法。在Apache Crunch中編寫Parquet文件

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")); 

在此先感謝。

+0

請問您可以使用您嘗試的方法編輯您的問題,以及您遵循的文檔鏈接。另外,粘貼不起作用的代碼。 :) –

+0

'PCollection pipeLine = MemPipeline.collectionOf(「Pineapple」,「Banana」,「Orange」); \t \t PCollection B = pipeLine.parallelDo(新DOFN <字符串,整數>(){ \t \t \t私有靜態最後長的serialVersionUID = 1L; \t \t \t @Override \t \t \t公共無效處理(字符串輸入,發射器發射器)\t \t \t emitter.emit(input.length()); \t \t \t} \t \t},ints()); (新的AvroParquetFileTarget(「D:\\ Tutorials \\ WorkSpace \\ Crunch \\ resources \\ output」)); \t} ' –

+0

感謝@SagarKulkarni對你的迴應,上面是我正在嘗試的代碼。 –

回答

1

如果你有一個Avro的模式,並從其中包含您的地板相同的數據結構的Avro編譯類,您可以通過以下方式

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

閱讀並寫拼花這樣

Target parquetFileTarget = new AvroParquetFileTarget(outputPath); 
mypcollection.write(avroParquetFileSource); 
相關問題