Так я пытаюсь следовать этому примеру: http://ajkannan.github.io/gcloud-python/latest/bigquery-usage.htmlнеожиданное ключевое слово аргумент «тип» для BigQuery
Но когда я пытаюсь создать таблицу:
import os
import subprocess
import sys
from gcloud.bigquery import SchemaField
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = "toto.json"
os.environ['GCLOUD_PROJECT'] = 'titi'
from gcloud import pubsub
client = pubsub.Client('titi')
# Imports the Google Cloud client library
from google.cloud import bigquery
# Instantiates a client
bigquery_client = bigquery.Client()
# The name for the new dataset
dataset_name = 'tata'
dataset = bigquery_client.dataset(dataset_name)
table = dataset.table(name='aspire_page')
table.schema = [
SchemaField(name= 'id', type= 'int', mode= 'nullable'),
SchemaField(name= 'zip', type= 'string', mode= 'nullable'),
SchemaField(name= 'html', type= 'string', mode= 'nullable'),
SchemaField(name= 'url', type= 'string', mode= 'nullable'),
SchemaField(name= 'categorie', type= 'string', mode= 'nullable'),
SchemaField(name= 'date', type= 'string', mode= 'nullable'),
SchemaField(name='name', type= 'string', mode= 'nullable'),
]
table.create()
У меня есть:
TypeError Traceback (most recent call last)
<ipython-input-10-30edba459053> in <module>()
23
24 table.schema = [
---> 25 SchemaField(name= 'id', type= 'int', mode= 'nullable'),
26 SchemaField(name= 'zip', type= 'string', mode= 'nullable'),
27 SchemaField(name= 'html', type= 'string', mode= 'nullable'),
TypeError: __init__() got an unexpected keyword argument 'type'
И я не понимаю, зачем SchemaField нужен тип для инициализации ...
Если кто-то есть идея
Спасибо и привет
редактировать:
Даже @ andre622 не работают:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-1-f177aa490fbb> in <module>()
29 SchemaField('categorie', 'STRING', mode= 'nullable'),
30 SchemaField('date', 'STRING', mode= 'nullable'),
---> 31 SchemaField('name', 'STRING', mode= 'nullable'),
32 ]
33
/usr/local/lib/python3.5/dist-packages/google/cloud/bigquery/table.py in schema(self, value)
113 """
114 if not all(isinstance(field, SchemaField) for field in value):
--> 115 raise ValueError('Schema items must be fields')
116 self._schema = tuple(value)
117
ValueError: Schema items must be fields
Даже нику предложение:
import os
import subprocess
import sys
from gcloud.bigquery import SchemaField
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = "toto.json"
os.environ['GCLOUD_PROJECT'] = 'titi'
from gcloud import pubsub
client = pubsub.Client('titi')
# Imports the Google Cloud client library
from google.cloud import bigquery
# Instantiates a client
bigquery_client = bigquery.Client()
# The name for the new dataset
dataset_name = 'choual'
# Prepares the new dataset
dataset = bigquery_client.dataset(dataset_name)
table = dataset.table(name='aspire_page')
table.schema = [
SchemaField('id','INTEGER'),
SchemaField('zip', 'STRING'),
SchemaField('html', 'STRING'),
SchemaField('url', 'STRING'),
SchemaField('categorie', 'STRING'),
SchemaField('date', 'STRING'),
SchemaField('name', 'STRING')
]
table.create()
Я получил эту ошибку:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-3-191573ca7711> in <module>()
29 SchemaField('categorie', 'STRING'),
30 SchemaField('date', 'STRING'),
---> 31 SchemaField('name', 'STRING')
32 ]
33
/usr/local/lib/python3.5/dist-packages/google/cloud/bigquery/table.py in schema(self, value)
113 """
114 if not all(isinstance(field, SchemaField) for field in value):
--> 115 raise ValueError('Schema items must be fields')
116 self._schema = tuple(value)
117
ValueError: Schema items must be fields
Я пробовал с вашим предложением и отредактировал свой вопрос, и nope не работает Спасибо за ваше время :) – user462794
@ user462794 см. Редактировать –
это сработало спасибо – user462794