Details zum Umgang mit BigQuery in Python finden Sie unter hier. Verwalten von Datensätzen, wenn Sie mit Datensätzen arbeiten möchten Tabellen verwalten, wenn Sie Tabellen bearbeiten möchten Es gibt eine Beschreibung in.
Eine Tabelle erstellen
from google.cloud import bigquery
#Bei Verwendung mit Colab muss der PJ-Name angegeben werden
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)
)
Details zur Anweisung finden Sie unter hier. , Einzelheiten zur Angabe des Schemas finden Sie auf der offiziellen BigQuery-Website. Ändern Sie Feldtyp und Modus nach Bedarf.
Erklärung
SchemaField(name, field_type, mode='', description=None, fields=(), policy_tags=None)
Ein Beispiel für eine Schemaspezifikation
#String(Es ist ein Leerzeichen)
SchemaField(name, 'STRING', mode='NULLABLE')
#ganze Zahl(Es ist ein Leerzeichen)
SchemaField(name, 'INT64', mode='NULLABLE')
#Gleitkomma(Es ist ein Leerzeichen)
SchemaField(name, 'FLOAT64', mode='NULLABLE')
#Datum(Verpflichtend)
SchemaField(name, 'DATE', mode='REQUIRED')
#Datum (und Uhrzeit(Verpflichtend)
SchemaField(name, 'DATETIME', mode='REQUIRED')
Abfrage ausführen
from google.cloud import bigquery
#Bei Verwendung mit Colab muss der PJ-Name angegeben werden
client = bigquery.Client()
client = bigquery.Client(project=project_id) # "your-project"
#Beschreiben Sie die Abfrage, die Sie ausführen möchten
query = '''
select * from `tableID`
where ...
'''
client.query(query)
Bitte beachten Sie, dass Sie bis zu 10.000 Zeilen gleichzeitig einfügen können. Wenn Sie mehr als 10.000 Zeilen eingeben möchten, können Sie die unten beschriebene Methode verwenden.
from google.cloud import bigquery
#Bei Verwendung mit Colab muss der PJ-Name angegeben werden
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.
#Zweidimensionales Array von Listen
#Im Beispiel handelt es sich um einen Taple, aber es gibt kein Problem mit der Liste(Unten ist der Fall mit zwei Spalten)
#Allerdings die Anzahl der Schemata und die Tupel im Inneren(oder Liste)Beachten Sie, dass ein Fehler auftritt, wenn die Anzahl der Elemente in
rows_to_insert = [("string", num), ("string", num)]
errors = client.insert_rows(table, rows_to_insert) # Make an API request.
#Bei Verwendung von Pandas Datenflamme
errors = client.insert_rows(table, df.values.tolist())
if errors == []:
print("New rows have been added.")
Unter der Annahme, dass die Datenflamme in df enthalten ist, ist es möglich, in das zweidimensionale Array der folgenden Liste zu wechseln
df.values.tolist()
Wenn Sie Daten mit mehr als 10.000 Zeilen einfügen möchten, teilen Sie diese wie folgt auf.
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
Es gibt vielleicht eine bessere Möglichkeit, es zu schreiben, aber es ist möglich, alles hinzuzufügen, auch wenn es größer als 10000 oben ist.
Recommended Posts