【问题标题】:Uploading empty data to Bigquery using gcloud python使用 gcloud python 将空数据上传到 Bigquery
【发布时间】:2017-02-02 08:52:23
【问题描述】:

我尝试使用gcloud python library 上传几行数据,但没有成功。这是取自latest documentation的示例代码

client = bigquery.Client()
dataset = client.dataset('test')
table = dataset.table("test_table")
rows = [("foo", "bar"), ("foo2", "bar2")]
result = table.insert_data(rows)

如果我查询我得到的最新上传:

[(None, None), (None, None)]

所以我添加了空字段。在文档中它说上传的行应该是“元组列表”,但这似乎不起作用。我的架构有两个字符串字段。 Unicode 字段也不起作用,我也没有得到任何错误结果,这使得调试变得困难。任何提示我做错了什么?

【问题讨论】:

    标签: python google-bigquery gcloud-python google-cloud-python


    【解决方案1】:

    在表中显式声明架构将有助于解决此问题。即,您应该使用以下内容,而不是使用 table = dataset.table('test_table')

    left = SchemaField('left', 'STRING', 'REQUIRED') right = SchemaField('right', 'STRING', 'REQUIRED') table = dataset.table('test_table', schema=[left, right])

    我在 Github 上打开了一个关于此的问题。有兴趣的可以read more here

    【讨论】:

    • 非常感谢。我最终使用了 GoogleApi 库 (cloud.google.com/bigquery/docs/reference/v2/tabledata/insertAll),因为我已经有了一个 python 字典,将它转换为集合对我来说毫无意义。坦率地说,我不能遵循 gcloud 库背后的方法来分别处理集合和模式。使用结合了两者的 dic 会更容易。但无论如何感谢您的解决方案。
    • 对于您使用“from google.cloud.bigquery.schema import SchemaField”的导入语句,我们收到错误“没有名为 bigquery.cloud.schema 的模块”。这个库是否存在甚至不再工作?
    猜你喜欢
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 2017-12-03
    • 2020-10-20
    相关资源
    最近更新 更多