Как загрузить файл данных pandas, содержащий списки, в массив Google BigQuery и формат структур? - PullRequest
0 голосов
/ 06 ноября 2019

Я хотел бы использовать pandas для вставки информационного кадра в таблицу BigQuery с массивами и структурами

Таблица Bigquery выглядит следующим образом: col_a (int), col_b (string), col_c.A (structс Array Subtype0), col_c.B (структура с подтипом int)

У меня есть кадр данных, который выглядит следующим образом:

col_a (тип int), col_b (строка), col_c (списокобъекты), col_d (int).

Есть ли способ загрузить кадры данных pandas в таблицы больших запросов со структурами и массивами?

1 Ответ

0 голосов
/ 06 ноября 2019

Да, вы можете сделать это

import google.cloud
from google.cloud import bigquery


def save_df_to_bq(args,dataframe,csv_name):



print("Length of the incoming dataframe :-->" , len(dataframe))

print(dataframe.iloc[[0]])

client = bigquery.Client()

dataset_ref = client.dataset(dataset_id,project_id)

 schema = [
     bigquery.SchemaField('col_a ', 'dttype'),
     bigquery.SchemaField('col_b ', 'dttype'),
     bigquery.SchemaField('col_c ', 'dttype'),

 ]      

acc_table_id = str(random.randint(100000,100000*1000000))
# table_ref = dataset_ref.table(acc_table_id)
# table = bigquery.Table(table_ref, schema=schema)
# table = client.create_table(table)  # API request
# print("Table created..")

# acc_table_id = str(random.randint(100000,100000*1000000))
acc_table_ref = client.dataset(dataset_id,project_id).table(acc_table_id)
job = client.load_table_from_dataframe(dataframe, acc_table_ref, location="US")
job.result()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...