You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 23:10:24