Я действительно новичок в Google Cloud Platform. Я пытаюсь заполнить таблицу BigQuery данными, извлеченными из CSV-файла объекта корзины. Я создал тестовый сценарий Python для создания и заполнения таблицы. Создание завершено, но когда я запускаю файл, я застреваю.
Мой сценарий:
from google.cloud import bigquery
from google.cloud.bigquery import LoadJobConfig
from google.cloud.bigquery import SchemaField
client = bigquery.Client()
dataset_ref = client.dataset('datasetname')
## Create the table
schema = [
bigquery.SchemaField('start_date', 'DATETIME', mode='NULLABLE'),
bigquery.SchemaField('start_station_code', 'INTEGER', mode='NULLABLE'),
bigquery.SchemaField('end_date', 'DATETIME', mode='NULLABLE'),
bigquery.SchemaField('end_station_code', 'INTEGER', mode='NULLABLE'),
bigquery.SchemaField('duration_sec', 'INTEGER', mode='NULLABLE'),
bigquery.SchemaField('is_member', 'INTEGER', mode='NULLABLE')
]
table_ref = dataset_ref.table('tablename')
table = bigquery.Table(table_ref, schema=schema)
table = client.create_table(table) # API request
## Loading data
SCHEMA = [
SchemaField('start_date', 'DATETIME', mode='NULLABLE'),
SchemaField('start_station_code', 'INTEGER', mode='NULLABLE'),
SchemaField('end_date', 'DATETIME', mode='NULLABLE'),
SchemaField('end_station_code', 'INTEGER', mode='NULLABLE'),
SchemaField('duration_sec', 'INTEGER', mode='NULLABLE'),
SchemaField('is_member', 'INTEGER', mode='NULLABLE')
]
#table_ref = client.dataset('dataset_name').table('table_name')
load_config = LoadJobConfig()
load_config.skip_leading_rows = 1
load_config.schema = SCHEMA
uri = 'gs://gcp-development/object.csv'
load_job = client.load_table_from_uri(
uri,
table_ref,
job_config=load_config)
load_job.result()
destination_table = client.get_table(table_ref)
print('Loaded {} rows.'.format(destination_table.num_rows))
Согласно документация, это кажется правильным. Однако я получаю следующую ошибку, которую я не понимаю, и я не знаю, как проверить журналы, чтобы получить более подробную информацию.
ошибка:
google.api_core.exceptions.BadRequest: 400 Error while reading data, error message: CSV table encountered too many errors, giving up. Rows: 1; errors: 1. Please look into the error stream for more details.
Где поток ошибок? Пробовал:
GET https://www.googleapis.com/bigquery/v2/projects/projectId/queries/jobId
после документация по поиску и устранению неисправностей, но я ничего не получил.
Спасибо за вашу помощь.
Я мог загружать данные с помощью вашего скрипта без каких-либо проблем. Вы можете просмотреть полное сообщение об ошибке в Просмотр журналов, выбрав BigQuery в первом левом меню. Это может быть связано с ошибкой синтаксического анализа полей даты и времени. Дополнительную информацию об использовании средства просмотра журналов можно найти в этот документ.
Я использовал следующую выборку данных:
start_date,start_station_code,end_date,end_station_code,duration_sec,is_member
0001-01-01 00:00:00.000000,1,9999-12-31 23:59:59.999999,2,3,4
0001-01-01 00:00:00.000000,2,9999-12-31 23:59:59.999999,3,4,5
0001-01-01 00:00:00.000000,3,9999-12-31 23:59:59.999999,4,5,6
0001-01-01 00:00:00.000000,4,9999-12-31 23:59:59.999999,5,6,7
0001-01-01 00:00:00.000000,5,9999-12-31 23:59:59.999999,6,7,8
0001-01-01 00:00:00.000000,6,9999-12-31 23:59:59.999999,7,8,9
0001-01-01 00:00:00.000000,7,9999-12-31 23:59:59.999999,8,9,10
0001-01-01 00:00:00.000000,8,9999-12-31 23:59:59.999999,9,10,11
0001-01-01 00:00:00.000000,9,9999-12-31 23:59:59.999999,10,11,12
0001-01-01 00:00:00.000000,10,9999-12-31 23:59:59.999999,11,12,13
Возможно ли, что ваш файл CSV неправильно отформатирован? Не могли бы вы поделиться примером файла в своем вопросе?