如何在Colab中连接BigQuery与Python?如何在SQL中将字符串转为整数?
1. Google Colab 连接 BigQuery 与 Python 的操作方法
身份验证
Colab自带BigQuery相关依赖,先完成Google账号授权:from google.colab import auth auth.authenticate_user()运行后会弹出授权链接,登录你的Google账号,复制生成的授权码粘贴到输入框即可完成验证。
初始化BigQuery客户端
验证通过后,指定你的GCP项目ID初始化客户端:from google.cloud import bigquery project_id = "你的项目ID" client = bigquery.Client(project=project_id)执行SQL查询
用客户端执行查询并将结果转为DataFrame:query = """ SELECT * FROM `你的项目ID.数据集名.表名` LIMIT 10 """ df = client.query(query).to_dataframe() print(df.head())快捷方式:使用Colab魔法命令
嫌客户端代码繁琐的话,可用魔法命令快速操作:%load_ext google.colab.data_table %bigquery --project 你的项目ID之后直接写SQL就能查询:
%%bigquery SELECT * FROM `你的项目ID.数据集名.表名` LIMIT 10
2. SQL中字符串转整数的实现方式
不同SQL数据库的转换逻辑略有差异,以下是主流数据库的实现方法:
MySQL/MariaDB
用CAST()或CONVERT()函数,示例:-- CAST语法 SELECT CAST(string_col AS UNSIGNED) AS int_col FROM your_table; -- CONVERT语法 SELECT CONVERT(string_col, UNSIGNED) AS int_col FROM your_table;注意:如果字符串包含非数字字符,转换会直接报错。
PostgreSQL
支持CAST()函数或简化的::语法:-- CAST方式 SELECT CAST(string_col AS INTEGER) AS int_col FROM your_table; -- 简化语法 SELECT string_col::INTEGER AS int_col FROM your_table;PostgreSQL 12+支持
SAFE_CAST(),转换失败时返回NULL而非报错:SELECT SAFE_CAST(string_col AS INTEGER) AS int_col FROM your_table;BigQuery
优先用SAFE_CAST()避免查询因转换失败中断:SELECT SAFE_CAST(string_col AS INT64) AS int_col FROM your_table;也可使用普通
CAST(),但转换失败会直接报错:SELECT CAST(string_col AS INT64) AS int_col FROM your_table;SQL Server
用CAST()/CONVERT(),或TRY_CAST()/TRY_CONVERT()处理转换失败:-- 常规转换(失败报错) SELECT CAST(string_col AS INT) AS int_col FROM your_table; SELECT CONVERT(INT, string_col) AS int_col FROM your_table; -- 容错转换(失败返回NULL) SELECT TRY_CAST(string_col AS INT) AS int_col FROM your_table; SELECT TRY_CONVERT(INT, string_col) AS int_col FROM your_table;
内容的提问来源于stack exchange,提问作者Line Keyu
相关产品推荐
相关产品推荐

