Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform Apache Beam无法读取Avro文件_Google Cloud Platform_Google Cloud Dataflow_Avro_Apache Beam - Fatal编程技术网

Google cloud platform Apache Beam无法读取Avro文件

Google cloud platform Apache Beam无法读取Avro文件,google-cloud-platform,google-cloud-dataflow,avro,apache-beam,Google Cloud Platform,Google Cloud Dataflow,Avro,Apache Beam,我需要通过java从本地或gcs读取avro文件。 我遵循了来自的文档中的示例 管道p=。。。; //从GCS文件读取(在本地运行并使用远程执行): Schema Schema=newschema.Parser().parse(新文件(“Schema.avsc”); 收集记录= p、 应用(AvroIO.readGenericRecords(模式) .from(“gs://my_bucket/path/to/records-*.avro”); 但当我试图通过DoFn处理它时,那里似乎没有任何数

我需要通过java从本地或gcs读取avro文件。 我遵循了来自的文档中的示例

管道p=。。。; //从GCS文件读取(在本地运行并使用远程执行): Schema Schema=newschema.Parser().parse(新文件(“Schema.avsc”); 收集记录= p、 应用(AvroIO.readGenericRecords(模式) .from(“gs://my_bucket/path/to/records-*.avro”); 但当我试图通过DoFn处理它时,那里似乎没有任何数据。 avro文件确实有数据,并且能够运行函数从中生成模式。
如果有人有建议,请分享。

我完全同意安德鲁的观点,需要更多信息。但是,我认为您应该考虑使用avrio.Read,这是从一个或多个AVRO文件读取记录的更合适的转换。

PipelineOptions=PipelineOptionsFactory.create();
Pipeline p=Pipeline.create(选项);
Schema Schema=newschema.Parser().parse(新文件(“Schema.avsc”);
收集记录=
p、 apply(AvroIO.Read.named(“ReadFromAvro”)
.from(“gs://my_bucket/path/records-*.avro”)
.使用模式(schema));

我完全同意安德鲁的观点,需要更多信息。但是,我认为您应该考虑使用avrio.Read,这是从一个或多个AVRO文件读取记录的更合适的转换。

PipelineOptions=PipelineOptionsFactory.create();
Pipeline p=Pipeline.create(选项);
Schema Schema=newschema.Parser().parse(新文件(“Schema.avsc”);
收集记录=
p、 apply(AvroIO.Read.named(“ReadFromAvro”)
.from(“gs://my_bucket/path/records-*.avro”)
.使用模式(schema));

嘿,伙计们,谢谢你们调查此事。我不能共享任何代码,因为它们属于客户端。我没有收到任何错误消息,调试器确实看到了数据,但我们无法看到avro文件中的数据(通过pardo)


通过使用Eclipse向导重新创建数据流项目,我成功地解决了这个问题。我甚至使用了相同的代码。我想知道为什么我没有收到任何错误消息

嘿,伙计们,谢谢你们调查这件事。我不能共享任何代码,因为它们属于客户端。我没有收到任何错误消息,调试器确实看到了数据,但我们无法看到avro文件中的数据(通过pardo)


通过使用Eclipse向导重新创建数据流项目,我成功地解决了这个问题。我甚至使用了相同的代码。我想知道为什么我没有收到任何错误消息

是否有任何相关的日志消息?你能描述一下
DoFn
正在做什么吗?你能发布更多的相关代码吗?可能会发布完整的管道实现。在数据流UI中,您是否看到输入元素计数保持为零?是否有任何相关的日志消息?你能描述一下
DoFn
正在做什么吗?你能发布更多的相关代码吗?可能会发布完整的管道实现。在Dataflow UI中,您是否看到输入元素计数保持为零?我同意您可能应该包括一个指向最新Beam文档的链接,因为Google的东西已经过时了。我同意,但你可能应该包括一个链接到最新的梁文件,因为谷歌的东西是过时的。
PipelineOptions options = PipelineOptionsFactory.create();
Pipeline p = Pipeline.create(options);

Schema schema = new Schema.Parser().parse(new File("schema.avsc"));

PCollection<GenericRecord> records =
p.apply(AvroIO.Read.named("ReadFromAvro")
                   .from("gs://my_bucket/path/records-*.avro")
                   .withSchema(schema));