Des informations détaillées sur la gestion de BigQuery en Python sont disponibles à l'adresse ici. Gérer des ensembles de données si vous souhaitez travailler avec des ensembles de données Gérer les tables si vous souhaitez manipuler des tables Il y a une description dans.
Créer une table
from google.cloud import bigquery
#Le nom PJ doit être spécifié lors de l'utilisation avec Colab
client = bigquery.Client()
client = bigquery.Client(project=project_id) # "your-project"
schema = [
bigquery.SchemaField("full_name", "STRING", mode="REQUIRED"),
bigquery.SchemaField("age", "INTEGER", mode="REQUIRED"),
]
# table_id = "your-project.your_dataset.your_table_name"
table = bigquery.Table(table_id, schema=schema)
table = client.create_table(table) # Make an API request.
print(
"Created table {}.{}.{}".format(table.project, table.dataset_id, table.table_id)
)
Les détails de la déclaration peuvent être trouvés à ici. Pour plus d'informations sur la spécification du schéma, consultez le site Web officiel de BigQuery. Modifiez field_type et mode selon vos besoins.
déclaration
SchemaField(name, field_type, mode='', description=None, fields=(), policy_tags=None)
Un exemple de spécification de schéma
#Chaîne(Il y a un blanc)
SchemaField(name, 'STRING', mode='NULLABLE')
#entier(Il y a un blanc)
SchemaField(name, 'INT64', mode='NULLABLE')
#Point flottant(Il y a un blanc)
SchemaField(name, 'FLOAT64', mode='NULLABLE')
#Date(Obligatoire)
SchemaField(name, 'DATE', mode='REQUIRED')
#Date et l'heure(Obligatoire)
SchemaField(name, 'DATETIME', mode='REQUIRED')
Exécuter l'ordre
from google.cloud import bigquery
#Le nom PJ doit être spécifié lors de l'utilisation avec Colab
client = bigquery.Client()
client = bigquery.Client(project=project_id) # "your-project"
#Décrivez la requête que vous souhaitez exécuter
query = '''
select * from `tableID`
where ...
'''
client.query(query)
Veuillez noter que vous pouvez insérer jusqu'à 10 000 lignes à la fois. Si vous souhaitez saisir plus de 10 000 lignes, vous pouvez utiliser la méthode décrite ci-dessous.
from google.cloud import bigquery
#Le nom PJ doit être spécifié lors de l'utilisation avec Colab
client = bigquery.Client()
client = bigquery.Client(project=project_id) # "your-project"
# table_id = "your-project.your_dataset.your_table_name"
table = client.get_table(table_id) # Make an API request.
#Tableau bidimensionnel de listes
#Dans l'exemple, c'est un taple, mais il n'y a pas de problème avec la liste(Ci-dessous le cas avec deux colonnes)
#Cependant, le nombre de schémas et les tuples à l'intérieur(ou liste)Notez qu'une erreur se produira si le nombre d'éléments dans
rows_to_insert = [("string", num), ("string", num)]
errors = client.insert_rows(table, rows_to_insert) # Make an API request.
#Lors de l'utilisation de pandas dataflame
errors = client.insert_rows(table, df.values.tolist())
if errors == []:
print("New rows have been added.")
En supposant que dataflame est inclus dans df, il est possible de passer au tableau bidimensionnel de la liste ci-dessous
df.values.tolist()
En outre, si vous souhaitez insérer des données de plus de 10 000 lignes, divisez-les comme suit.
rows = len(df)
count = 0
while rows > 0:
client.insert_rows(table, df[(count * 10000): ((count+1) * 10000)].values.tolist())
rows = rows - 10000
count = count + 1
Il peut y avoir une meilleure façon de l'écrire, mais il est possible de tout ajouter même s'il est supérieur à 10000 ci-dessus.
Recommended Posts