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

Snowpark读取Stage中Parquet文件返回空值,所用方法是否正确?

问题分析与修正方案

你的两种读取思路方向是对的,但代码里存在拼写错误和潜在配置问题,导致无法正确读取数据:

Python Snowpark 代码修正

原始代码存在两处关键拼写错误,同时需要验证路径有效性:

  1. 包名拼写错误:snowfake 应为 snowflake
  2. Parquet拼写错误:paraquet 需统一改为正确的 parquet(包含方法名和文件名)
  3. 路径验证:确认@data_stage/emp_data/file_path/emp.parquet是文件的完整Stage路径,注意Snowflake中Stage名称、路径的大小写需与实际一致

修正后的代码:

from snowflake.snowpark.context import get_active_session

session = get_active_session()

# 修正拼写错误,确认路径正确性
location = "@data_stage/emp_data/file_path/emp.parquet"

df = session.read.parquet(location)

df.show()

SQL 查询修正

SQL方法的问题大概率出在文件格式配置或查询方式上:

  1. 确认文件格式配置:myformat必须是针对Parquet的格式,创建语句示例:
    CREATE FILE FORMAT myformat TYPE = PARQUET;
    
  2. 调整查询逻辑:直接用$1读取Parquet文件会返回二进制数据,应改为查看完整结构或指定列名:
    -- 查看完整数据结构
    SELECT * FROM @mystage (file_format => 'myformat', pattern => 'emp.parquet') t;
    
    -- 若已知Schema,可直接指定列名(示例列名:id, name, age)
    SELECT t.id, t.name, t.age FROM @mystage (file_format => 'myformat', pattern => 'emp.parquet') t;
    
  3. 验证文件存在性:先执行以下语句确认Stage中的文件路径、大小正确:
    LIST @mystage/emp_data/file_path/;
    

通用排查步骤

  • 用LIST命令确认文件已成功上传到指定Stage,且路径、文件名无误
  • 下载文件到本地,用Parquet查看工具验证文件未损坏、内容正常
  • Snowpark环境下,可先执行session.sql("LIST @data_stage/emp_data/file_path/").show()确认文件存在

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 17:18:28