ClassCastException при чтении вложенного списка записей - Dataflow & BigQuery - PullRequest
0 голосов
/ 29 августа 2018

Чтение в таблице BigQuery из Dataflow, где одно из полей является полем «запись» и «повторение». Поэтому я ожидал, что результирующий тип данных в Java будет List

Однако, когда я пытаюсь перебрать список, я получаю следующее исключение: java.lang.ClassCastException: java.util.LinkedHashMap не может быть приведен к com.google.api.services.bigquery.model.TableRow

схема таблицы выглядит примерно так:

{
    "id": "my_id",
    "values": [
        {
            "nested_record": "nested"
        }
    ]
}

Код для перебора значений выглядит примерно так:

String id = (String) row.get("id");
List<TableRow> values = (List<TableRow>) row.get("values");

for (TableRow nested : values) {
    // more  logic
}

Исключение выдается прямо там, где начинается цикл. Очевидным решением здесь является просто приведение значений в виде списка LinkedHashMaps, но это не так. Кто-нибудь знает, почему Dataflow генерирует такую ​​ошибку для вложенных «записей»?

  • Спасибо заранее за вашу помощь!
...