【问题标题】:Google Cloud Dataflow TextIO write to .gz file?Google Cloud Dataflow TextIO 写入 .gz 文件?
【发布时间】:2017-06-23 08:36:00
【问题描述】:

我们如何通过 Google 数据流作业在 GCS 中创建压缩文件?

我无法指定压缩类型。如果该功能尚不存在,是否有更简洁的方法可以将 Google BigQuery 的查询输出到压缩文件?

【问题讨论】:

    标签: google-bigquery google-cloud-storage google-cloud-dataflow apache-beam


    【解决方案1】:

    您需要使用 TextIO 写入文件(有关所有内置 I/O 转换的概述,请查看 here)。

    您可以在代码here中看到一个示例:

    PCollection<String> lines = ...;
    lines.apply(TextIO.write().to("/path/to/file.txt")
      .withSuffix(".txt")
      .withWritableByteChannelFactory(FileBasedSink.CompressionType.GZIP));
    

    编辑:您还可以直接从 GUI 将表格从 BigQuery 导出到 gzip 文件:

    【讨论】:

    • 很遗憾,Google 的 Dataflow 不提供 .withWritableByteChannelFactory()
    • 您使用的是哪个 SDK?顺便更新了上面的代码。
    • com.google.cloud.dataflow:google-cloud-dataflow-java-sdk-all:1.9.0
    • docs for Dataflow 1.x 中我发现:“TextIO 目前不支持写入压缩文件。” 据我所知,Dataflow 1.9 不再积极开发,因此您必须求助于 2.0.0 或使用 BigQuery GUI(见上文)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-01
    • 1970-01-01
    • 2019-02-18
    相关资源
    最近更新 更多