Do you have the full stack trace ? Also, does readTableRows() work for you (without using schemas) ?
On Fri, Apr 17, 2020 at 3:44 AM Joshua Bassett <[email protected]> wrote: > Hi there > > I'm trying to read rows from a BigQuery table that contains a repeated > field into POJOs. Unfortunately, I'm running into issues and I can't figure > it out. > > I have something like this: > > @DefaultSchema(JavaFieldSchema.class) > class Article implements Serializable { > public Long id; > public String title; > @SchemaFieldName("author_ids") > public Long[] authorIds; > } > > PCollection<Article> articles = pipeline > .apply( > BigQueryIO > .readTableRowsWithSchema() > .from("myproject:data_warehouse.articles") > ) > .apply(Convert.to(Article.class)); > > The schema looks like this: > > [ > { > "mode": "NULLABLE", > "name": "id", > "type": "INTEGER" > }, > { > "mode": "NULLABLE", > "name": "title", > "type": "STRING" > }, > { > "mode": "REPEATED", > "name": "author_ids", > "type": "INTEGER" > } > ] > > When I run the pipeline, I end up with the following exception: > > java.lang.ClassCastException: java.lang.String cannot be cast to > java.util.Map > > Should this be possible? Strangely, when I remove the repeated field from > the schema/POJO it works perfectly. > > I'm using Beam SDK 2.19.0 with the direct runner. Any help would be much > appreciated. > > Josh >
