将bigquery中的所有列强制转换为float/string



我试图下载一个BQ表使用python这样:从谷歌。云导入bigquery

client = bigquery.Client()
SQL_QUERY = """
SELECT *
FROM TABLE
"""
df = client.query(SQL_QUERY).to_dataframe()

在回溯中得到以下错误。看起来,google-cloud-sdk首先将表转换为JSON格式,然后将其转储为CSV。

converter = _CELLDATA_FROM_JSON[field.field_type]
KeyError: 'NUMERIC'

我有两个问题:

  1. 是否有一种方法可以在使用Python下载之前将BQ中的所有列转换为float/string ?
  2. 我如何确定哪些列引起了麻烦?

如果您明确地提到您的列名,您的查询可以变得更可读。

假设您的表有3列(a,bc)。如果您想将它们转换为浮点数,您可以简单地将查询修改为:

SQL_QUERY = """
SELECT 
cast(a as float64) as a, 
cast(b as float64) as b, 
cast(c as float64) as c
FROM TABLE
"""

相关内容

  • 没有找到相关文章

最新更新