Загрузка CSV-файла в таблицу BQ с помощью облачной консоли

#google-bigquery

# #google-bigquery

Вопрос:

Я пытаюсь загрузить CSV-файл в BQ с помощью консоли. он имеет размер 45 Мб. Я вижу, что с помощью «загрузить» я могу загрузить только до 10 МБ. У меня нет доступа к диску и нет доступа для запуска загрузки bq из командной строки на моем локальном компьютере, поскольку в разрешении отказано.

Есть ли обходной путь для этого? Это будет большим подспорьем.Спасибо

Ответ №1:

Вы можете загрузить файл в корзину облачного хранилища Google, а затем скопировать URL-адрес хранилища «// gs:». Затем в консоли вы можете создать таблицу и выбрать источник «Облачное хранилище Google» и вставить свой URL.

Ответ №2:

Я могу загрузить файл размером более 10 МБ, следуя этому руководству

Для выполнения скрипта python вам просто нужно установить библиотеку bigquery в вашем virtualenv.

 pip install google-cloud-bigquery
 

Если у вас еще не создан набор данных, вам просто нужно запустить команду из console cloud для создания нового набора данных.

 $ bq mk pythoncsv
#Dataset 'healthy-pager-276023:pythoncsv' successfully created.
 

После успешного создания набора данных просто запустите скрипт python для загрузки вашего csv.

Мое окончательное решение — это скрипт python:

 from google.cloud import bigquery

# Construct a BigQuery client object.
client = bigquery.Client()

# TODO(developer): Set table_id to the ID of the table to create.
# JUST FOLLOW THIS PATTERN: <projectid>.<datasetname>.<tablename>
table_id = "healthy-pager-276023.pythoncsv.table_name"

job_config = bigquery.LoadJobConfig(
    source_format=bigquery.SourceFormat.CSV, skip_leading_rows=1, autodetect=True,
)
path_to_file_name = "massdata.csv" #<-- PATH TO CSV TO IMPORT 
with open(path_to_file_name, "rb") as source_file:
    job = client.load_table_from_file(source_file, table_id, job_config=job_config)

job.result()  # Waits for the job to complete.

table = client.get_table(table_id)  # Make an API request.
print("Loaded {} rows and {} columns to {}".format(table.num_rows, len(table.schema), table_id))
 

И вот мои конфигурации из консоли gcloud из big query:

введите описание изображения здесь