回答

1

雖然Apache的梁SDK不包含現成的重命名文件PTransform,沒有什麼阻止你做自己 - 管道可以包含任意代碼DoFn的,你既可以使用標準的Google Cloud Storage Java APIs,或更方便地使用Beam的FileSystems API。例如:

class RenameFn extends DoFn<KV<String, String>, Void> { 
    @ProcessElement 
    public void process(ProcessContext c) { 
    ResourceId src = FileSystems.matchNewResource(c.element().getKey()); 
    ResourceId dest = FileSystems.matchNewResource(c.element().getValue()); 
    FileSystems.rename(Arrays.asList(src), Arrays.asList(dest)); 
    } 
} 
+0

感謝您的回答,實際上我對數據流真的很陌生,所以請您解釋一下什麼是關鍵和價值。它是文件名嗎? – Aditi

+0

鍵是源文件名,值是目標文件名。請記住,我沒有測試過這段代碼,我只是用它來說明如何使用FileSystems.rename()API以及如何從FileSystems API轉換爲ResourceId。 – jkff

相關問題