Bigquery к Авро - PullRequest
       30

Bigquery к Авро

0 голосов
/ 03 июня 2019

В настоящее время я запускаю SQL-запрос для извлечения данных из набора данных Public BigQuery в таблицу. Оттуда я могу легко использовать функцию экспорта для генерации файла Avro и сохранения его в GCS.Как сгенерировать этот файл программно?Я использовал BQ API для чтения таблицы в Pandas Dataframe, является ли лучшим вариантом для чтения в Pandas DF и затем экспортировать его в Avro?Или это лучший способ сделать это.

1 Ответ

2 голосов
/ 06 июня 2019

Почему бы вам не экспортировать напрямую в Avro ? Это сделает экспорт таблицы в Avro в GCS.

from google.cloud import bigquery 

client = bigquery.Client()
project = project
dataset_id = 'cdc'
table_id = 'project_tycho_reports'
bucket_name ='bucketname'

destination_uri = 'gs://{}/{}'.format(bucket_name, 'fileName')
dataset_ref = client.dataset(dataset_id, project=project)
table_ref = dataset_ref.table(table_id)

job_config = bigquery.job.ExtractJobConfig()
job_config.destination_format = bigquery.DestinationFormat.AVRO

extract_job = client.extract_table(
        table_ref,
        destination_uri,
        job_config=job_config,
        location="EU",
        )  
extract_job.result()  

Я видел, что есть также возможность указать сжатие (недоступно при экспорте из пользовательского интерфейса) что-то вроде job_config.compression = bigquery.Compression.SNAPPY Надеюсь, это поможет.

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