Java 谷歌云数据流的变化&x27;s压缩文件的处理

Java 谷歌云数据流的变化&x27;s压缩文件的处理,java,google-cloud-storage,google-cloud-dataflow,Java,Google Cloud Storage,Google Cloud Dataflow,谷歌数据流从谷歌云存储读取压缩文件的方式最近有什么变化吗?我正在从事一个项目,该项目从GCS读取压缩的csv日志文件,并将这些文件用作数据流管道的源。直到最近,无论是否指定文件的压缩类型,这种方法都能很好地工作 目前,我的DoFn中的processElement方法只被调用一次(对于csv头行),尽管该文件有许多行。如果我使用同一个未压缩的源文件,那么一切都会按预期工作(每一行都会调用processElement方法)。正如这里所建议的,将内容编码设置为gzip确实有效,但我以前不必这样做 我在

谷歌数据流从谷歌云存储读取压缩文件的方式最近有什么变化吗?我正在从事一个项目,该项目从GCS读取压缩的csv日志文件,并将这些文件用作数据流管道的源。直到最近,无论是否指定文件的压缩类型,这种方法都能很好地工作

目前,我的DoFn中的processElement方法只被调用一次(对于csv头行),尽管该文件有许多行。如果我使用同一个未压缩的源文件,那么一切都会按预期工作(每一行都会调用processElement方法)。正如这里所建议的,将内容编码设置为gzip确实有效,但我以前不必这样做

我在使用DirectPipelineRunner或DataflowPipelineRunner时遇到了这个问题。我使用的是云数据流sdk的1.5.0版。

我们发现读取连接的gzip文件时出现问题()。它已由在Apache Beam Github存储库中修复,由在Dataflow SDK Github存储库中修复。这将是下一版本的一部分


在此之前,解决方法是使用从Github构建的SDK,或者将整个文件压缩为单个部分。

很抱歉给您添麻烦。你能澄清一下你用来读取输入的是什么吗(是TextIO吗?除了文件名之外,你在上面设置了其他参数吗?)并给出一个行为不端的作业ID示例?还请澄清您是如何检测到您的DoFn仅为标题行调用的?@jkff要检测DoFn processElement调用,我在使用DirectPipelineRunner进行调试时在processElement方法中添加了断点。我正在使用TextIO读取输入
code
TextIO.Read.named(String.format(“Read%s”,fileName)).from(fileName)。withCompressionType(TextIO.CompressionType.GZIP)当文件不工作时,文件的内容编码和内容类型是什么?此外,GCS中的文件名是yyy.csv或yyy.csv.gz还是yy.gz?