CLI "bq load" - как использовать непечатаемый символ в качестве разделителя? - PullRequest
0 голосов
/ 16 апреля 2019

У меня проблемы с загрузкой данных в BigQuery в виде одной строки столбца.Хотелось бы, чтобы BigQuery предлагал возможность «без разделителя» в качестве опции, но в то же время мне нужно выбрать самый непонятный разделитель ASCII, который я могу найти, чтобы строка из одного столбца не разбивалась на столбцы.

Когдапосле этого CLI не позволит мне вводить странные символы, поэтому мне нужно использовать API через Python или другие каналы.

Как вместо этого использовать CLI с непечатаемым символом?

Пример Python из Ленивая загрузка данных BigQuery: DDL, DML, разделы и пол триллиона просмотров страниц Википедии :

#!/bin/python
from google.cloud import bigquery
bq_client = bigquery.Client(project='fh-bigquery')
table_ref = bq_client.dataset('views').table('wikipedia_views_gcs')
table = bigquery.Table(table_ref, schema=SCHEMA)
extconfig = bigquery.ExternalConfig('CSV')
extconfig.schema = [bigquery.SchemaField('line', 'STRING')]
extconfig.options.field_delimiter = u'\u00ff'
extconfig.options.quote_character = ''

1 Ответ

1 голос
/ 16 апреля 2019

Чтобы использовать непечатный символ с загрузкой BQ, вы можете использовать echo в bash:

bq load \
 --source_format=CSV \
 --field_delimiter=$(echo -en "\x01") \
 --noreplace --max_bad_records=100 \
 <bq_dataset>.<bq_table> gs://<bucket_name>/<file_name>.csv
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...