0
我正在嘗試使用數據流程序重命名雲存儲文件。有可能這樣做嗎?如果是,那麼如何。我們可以使用數據流重命名雲存儲文件嗎
我正在嘗試使用數據流程序重命名雲存儲文件。有可能這樣做嗎?如果是,那麼如何。我們可以使用數據流重命名雲存儲文件嗎
雖然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));
}
}
感謝您的回答,實際上我對數據流真的很陌生,所以請您解釋一下什麼是關鍵和價值。它是文件名嗎? – Aditi
鍵是源文件名,值是目標文件名。請記住,我沒有測試過這段代碼,我只是用它來說明如何使用FileSystems.rename()API以及如何從FileSystems API轉換爲ResourceId。 – jkff