3

圧縮ファイルから入力データを読み取る方法 (または何らかのハック) はありますか? 私の入力は数百のファイルで構成されており、これらのファイルは gzip で圧縮されており、それらを解凍するのはやや面倒です。

4

4 に答える 4

6

圧縮されたテキスト ソースからの読み取りが Dataflow でサポートされるようになりました (この commitの時点)。具体的には、gzip および bzip2 で圧縮されたファイルは、圧縮タイプを指定することで読み取ることができます。

TextIO.Read.from(myFileName).withCompressionType(TextIO.CompressionType.GZIP)

ただし、ファイルの拡張子が .gz または .bz2 の場合、何もする必要はありません。デフォルトの圧縮タイプは AUTO で、ファイル拡張子を調べてファイルの正しい圧縮タイプを決定します。これは、グロブから生成されるファイルが .gz、.bz2、および非圧縮の混合である可能性があるグロブでも機能します。

于 2015-02-06T20:31:28.313 に答える
1

SDK の最新バージョン (v0.3.150210) で圧縮タイプを指定できるようになったことに気付きました。テストしたところ、問題なく GZ ファイルを GCS から BQ に直接ロードできました。

于 2015-02-12T08:07:45.817 に答える
1

また、クラウド ストアに存在するファイルの場合、コンテンツ タイプとコンテンツ エンコーディングの設定は、回避策を必要とせずに「機能する」ように見えることもわかりました。

具体的には - 私は走ります

gsutil -m setmeta -h "Content-Encoding:gzip" -h "Content-Type:text/plain" <path>
于 2015-01-05T08:44:46.850 に答える