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

App Engine Python服务中访问大型Pandas文件的GCP组件推荐及示例

针对App Engine Worker分析大型Pandas DataFrame的GCP存储组件推荐及示例

推荐组件1:Google Cloud Storage(GCS)

适用场景

适合存储任意大小的结构化/非结构化文件,尤其适配需要快速读写大型Pandas DataFrame的场景,支持Parquet、Feather等高效列式存储格式,可大幅提升数据加载速度。

核心优势

  • 高可用性与低延迟访问,支持全球多区域部署
  • 内置版本控制、生命周期管理功能,成本可控
  • Pandas原生支持通过gs://路径直接读写

示例代码

1. 将大型DataFrame存入GCS(Parquet格式)

import pandas as pd
from google.cloud import storage

# 加载本地大型数据集到DataFrame
df = pd.read_csv("large_source_data.csv")

# 初始化GCS客户端
storage_client = storage.Client()
bucket = storage_client.get_bucket("your-target-bucket")

# 保存为Parquet格式(压缩率高、读写快)
parquet_file_path = "data/processed_large_data.parquet"
df.to_parquet(f"gs://{bucket.name}/{parquet_file_path}", compression="snappy")

2. App Engine Worker中读取GCS文件并分析

import pandas as pd
from google.cloud import storage

def execute_analysis_task():
    # 初始化GCS客户端
    storage_client = storage.Client()
    bucket = storage_client.get_bucket("your-target-bucket")
    
    # 读取GCS上的Parquet文件到DataFrame
    parquet_file_path = "data/processed_large_data.parquet"
    df = pd.read_parquet(f"gs://{bucket.name}/{parquet_file_path}")
    
    # 执行自定义分析逻辑
    category_aggregation = df.groupby("user_category").agg({"transaction_amount": ["mean", "sum"]})
    
    # 将分析结果写回GCS
    category_aggregation.to_parquet("gs://your-target-bucket/analysis_results/category_summary.parquet")

推荐组件2:BigQuery

适用场景

当需要对大型DataFrame进行复杂SQL分析、多数据源联合查询,或后续需与BI工具集成时,BigQuery是更优选择——无需管理底层存储,直接通过Pandas完成结构化数据的双向传输。

核心优势

  • Serverless架构,自动扩展计算资源
  • 支持标准SQL,内置丰富分析函数,适配大规模数据处理
  • Pandas原生支持与BigQuery的无缝交互

示例代码

1. 将DataFrame上传至BigQuery

import pandas as pd
from google.cloud import bigquery

df = pd.read_csv("large_source_data.csv")

# 初始化BigQuery客户端
bq_client = bigquery.Client()
target_table_id = "your-gcp-project.your-dataset.target-table"

# 上传DataFrame到BigQuery(自动创建表结构)
load_job = bq_client.load_table_from_dataframe(df, target_table_id)
load_job.result()  # 等待上传完成

2. App Engine Worker中查询BigQuery数据并分析

import pandas as pd
from google.cloud import bigquery

def execute_bq_analysis():
    bq_client = bigquery.Client()
    # 编写分析查询
    analysis_query = """
        SELECT user_category, 
               AVG(transaction_amount) as avg_transaction,
               SUM(transaction_amount) as total_transaction
        FROM `your-gcp-project.your-dataset.target-table`
        WHERE transaction_date >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
        GROUP BY user_category
    """
    
    # 执行查询并转换为DataFrame
    df_analysis = bq_client.query(analysis_query).to_dataframe()
    
    # 进一步处理或保存结果
    df_analysis.to_gbq("your-gcp-project.your-dataset.analysis-results-table")

关键注意事项

  • 权限配置:确保App Engine Worker的服务账号拥有GCS的storage.objects.get/storage.objects.create权限,或BigQuery的bigquery.tables.getData/bigquery.tables.insert权限
  • 格式选择:优先使用Parquet/Feather等列式存储格式,相比CSV可显著降低存储成本与数据加载时间
  • App Engine环境:Standard环境下需确保依赖库(如google-cloud-storage、pandas)已包含在requirements.txt中;Flex环境支持更灵活的依赖安装方式

内容的提问来源于stack exchange,提问作者deepak

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 18:20:59