【问题标题】:Cast all columns in bigquery to float/string将 bigquery 中的所有列转换为浮点数/字符串
【发布时间】:2021-02-19 09:12:39
【问题描述】:

我正在尝试使用 python 下载 BQ 表,如下所示: 从 google.cloud 导入 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 中的所有列转换为浮点/字符串?
  2. 如何确定导致问题的列?

【问题讨论】:

    标签: python google-bigquery


    【解决方案1】:

    如果您明确地提及您的列名,您的查询会变得更具可读性。

    假设您的表格有 3 列(abc)。如果您想将这些转换为浮点数,您只需将查询修改为:

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

    【讨论】:

    • 我知道我可以做到。我想知道是否有办法识别每列的数据类型?
    猜你喜欢
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 2017-09-26
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多