bigQuery Ошибка при чтении данных, сообщение об ошибке: строка 1 имеет только 1 столбец, а 2 требуется - PullRequest
0 голосов
/ 01 июня 2018

Я создал файл json для определения таблицы в Google bigQuery, которая связана с электронной таблицей Google Sheets:

{
  "autodetect": true, 
  "sourceFormat": "GOOGLE_SHEETS", 
  "sourceUris": [
    "https://docs.google.com/spreadsheets/d/1P1WH7cwVDaG6k-OQxKVXtnjBXI1NGFYvHD6IxCRFsZc"
  ],
  "maxBadRecords": 1,
  "googleSheetsOptions":
  {
    "range": "Sheet2!A1:B10",
    "skipLeadingRows": 0
  },
  "schema" : {
    "fields": [
{"name":"col3","type":"string"},
{"name":"col4","type":"string"}
    ]
  }
}

Когда я запрашиваю его с помощью этой командной строки bq:

bq query --external_table_definition="Sheet2::/home/avilella/LIMS/test.json" --format=csv --use_legacy_sql=false 'SELECT * FROM Sheet2'

Я получаю эту ошибку:

BigQuery error in query operation: Error processing job 'cegx-test-project1:bqjob_r30ad5155bcd0a174_00000163bb575bcf_1': Error while reading table: Sheet2, error message: Sheets table encountered too many
errors, giving up. Rows: 2; errors: 2. Please look into the error stream for more details.
Failure details:
- 1P1WH7cwVDaG6k-OQxKVXtnjBXI1NGFYvHD6IxCRFsZc: Error while reading
data, error message: Row 1 has only 1 columns, while 2 is needed.
- 1P1WH7cwVDaG6k-OQxKVXtnjBXI1NGFYvHD6IxCRFsZc: Error while reading
data, error message: Row 2 has only 1 columns, while 2 is needed.

Есть идеи, что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 01 июня 2018

Из таблицы Sheet2 в вашей тестовой электронной таблице я увидел, что во 2-й и 3-й строках есть только 1 столбец, поэтому обе являются «плохими» строками, поскольку схема таблицы имеет 2 поля, как указано во внешней таблице def json.Кроме того, поскольку для параметра maxBadRecords установлено значение 1, запрос может быть успешно выполнен с максимум одной строкой, но поскольку у вас есть две неправильные строки, запрос завершился неудачно, как и ожидалось.

0 голосов
/ 01 июня 2018

Мне кажется, проблема в том, чтобы в Google Sheets были пустые ячейки.Я смог выполнить ту же команду после добавления строки в col4.Обратите внимание, что есть опция allowJaggedRows для загрузки конфигурации в Bigquery для принятия отсутствующих конечных необязательных столбцов, но она применяется только к CSV и в этом документе о состояниях процесса чтения листов Google

Пустые конечные строки и столбцы опущены.

Я думаю, что лучшим решением для этого случая является замена пустых ячеек другими значениями.Например, «ноль».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...