python - 将 bigquery 中的所有列转换为浮点数/字符串
问题描述
我正在尝试使用 python 下载 BQ 表,如下所示: from google.cloud import 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'
我有两个问题:
- 有没有办法在使用 Python 下载之前将 BQ 中的所有列转换为浮点/字符串?
- 如何确定哪些列导致了问题?
解决方案
如果您明确地提及您的列名,您的查询会变得更具可读性。
假设您的表有 3 列(a
和b
)c
。如果要将这些转换为浮点数,只需将查询修改为:
SQL_QUERY = """
SELECT
cast(a as float64) as a,
cast(b as float64) as b,
cast(c as float64) as c
FROM TABLE
"""
推荐阅读
- javascript - 如何遮蔽 ChartJS 线的一部分 grph=
- c++ - How can I "convert" ISO-8859-7 strings to UTF-8 in C++?
- node.js - MongoDB聚合与数组对象值的总和
- swift - SwiftUI VStack 对齐错误?
- excel-formula - 在excel中制定规则时遇到问题
- docker - Dockerfile CMD 忽略参数
- stripe-payments - 如何为条带会话结帐设置超时?
- regex - 在 ping 另一个单元格时,使 regexmatch 查询不区分大小写的语法是什么?
- ssl - SIM868E如何开启SSL?
- java - 如何直接将asn1架构转换为xsd?