Загрузка данных таблицы в формате CSV на локальный компьютер в запросе Big
def downloadGbqToCsv(self,table_name,csv):
credentials = GoogleCredentials.get_application_default()
bigquery = discovery.build('bigquery', 'v2', credentials=credentials)
job_data = {
'sourceTable': {
'projectId': self.project_id,
'datasetId': self.dataset_id,
'tableId': table_name,
},
'destinationUris': 'path/to/download',
'destinationFormat': 'CSV',
'compression': 'NONE'
}
start = time.time()
job_id = 'job_%d' % start
# Create the job.
result = bigquery.jobs().insert(projectId=self.project_id,body=job_data).execute()
return result
Как я могу загрузить данные таблицы в CSV на мой локальный компьютер?
2 ответа
Запустите Распаковку, чтобы экспортировать таблицу в Google Cloud Storage в желаемом формате, затем вы можете использовать любой инструмент GCS для загрузки файлов в локальную файловую систему.
Вот пример конфигурации извлечения задания: https://cloud.google.com/bigquery/exporting-data-from-bigquery
я использую gsutil
скопировать файлы из GCS на мой локальный диск.
Если вы хотите скопировать таблицу непосредственно на локальный диск, вам нужно будет использовать tabledata.list, чтобы вывести список по строкам таблицы, и преобразовать ее в выходной формат локально. bq
команда head
работает так, например:
bq --format = csv head -n 100 project: dataset.table
Но это загружает только первые 100 строк. Клиент bq не поддерживает перечисление всей таблицы таким образом, так как это слишком медленно. Однако, если ваши размеры данных невелики, это сработает для вас.
Выполнение запроса и сохранение на локальном компьютере в Big Query довольно непрямо, я упаковал код и надеюсь, что он поможет.
Packages version:
google-cloud (0.27.0)
google-cloud-bigquery (0.26.0)
google-cloud-storage (1.3.1)