apache beam 不支持 gsutil -Z
apache beam does not support gsutil -Z
使用 Apache Beam python SDK 2.2。
这可能是一个错误。
我有一个包含标准 csv 文件的本地文件夹。
我运行以下命令:
gsutil -m cp -Z -L output.log *.csv gs://my-bucket
正如预期的那样,文件已上传到扩展名为 *.csv 的存储桶,其中包含一些元数据,如文档中所述。
问题 #1: 扩展名不是 .csv.gz
所以 compression_type=beam.io.filesystem.CompressionTypes.AUTO
根本不起作用,假设没有压缩(基于扩展名)。
因此,如果我将压缩设置为 UNCOMPRESSED 或 GZIP,我将在 gcsio.py
assert len(value) == size
行 642 中获得一个断言。
内容未压缩(可能是由于 headers gsutil 集),因此无法正确读取大小(代码似乎期望压缩 value/size 对,但未压缩 value/compressed 大小)。
如果我使用 7z 压缩我的 csv 文件并手动上传到存储桶,一切正常,我们得到的值是压缩后的值和压缩后的大小。
问题 #2: 似乎 apache beam python sdk 不支持 gsutil 压缩...?
使用 gsutil 有什么解决办法吗?我宁愿在上传之前不要将某些东西编写成 gzip 脚本,因为我会在下载存储提供时失去自动解压缩。
PS:我使用来自 https://github.com/pabloem/beam_utils/blob/master/beam_utils/sources.py 的 CsvFileSource 的稍微修改版本:它读取整个文件而不是逐行读取。
我认为这些文件是在基于内容编码的运行时(读取)由 GCS 解压缩的。 Python SDK 目前不支持 GCS 自动解压。相关问题是 https://issues.apache.org/jira/browse/BEAM-1874。我们会在不久的将来尝试对此进行调查。
使用 Apache Beam python SDK 2.2。 这可能是一个错误。
我有一个包含标准 csv 文件的本地文件夹。 我运行以下命令:
gsutil -m cp -Z -L output.log *.csv gs://my-bucket
正如预期的那样,文件已上传到扩展名为 *.csv 的存储桶,其中包含一些元数据,如文档中所述。
问题 #1: 扩展名不是 .csv.gz
所以 compression_type=beam.io.filesystem.CompressionTypes.AUTO
根本不起作用,假设没有压缩(基于扩展名)。
因此,如果我将压缩设置为 UNCOMPRESSED 或 GZIP,我将在 gcsio.py
assert len(value) == size
行 642 中获得一个断言。
内容未压缩(可能是由于 headers gsutil 集),因此无法正确读取大小(代码似乎期望压缩 value/size 对,但未压缩 value/compressed 大小)。
如果我使用 7z 压缩我的 csv 文件并手动上传到存储桶,一切正常,我们得到的值是压缩后的值和压缩后的大小。
问题 #2: 似乎 apache beam python sdk 不支持 gsutil 压缩...? 使用 gsutil 有什么解决办法吗?我宁愿在上传之前不要将某些东西编写成 gzip 脚本,因为我会在下载存储提供时失去自动解压缩。
PS:我使用来自 https://github.com/pabloem/beam_utils/blob/master/beam_utils/sources.py 的 CsvFileSource 的稍微修改版本:它读取整个文件而不是逐行读取。
我认为这些文件是在基于内容编码的运行时(读取)由 GCS 解压缩的。 Python SDK 目前不支持 GCS 自动解压。相关问题是 https://issues.apache.org/jira/browse/BEAM-1874。我们会在不久的将来尝试对此进行调查。