SnowparkFetchDataException报错:无法获取Pandas DataFrame原因排查
报错原因分析
这个报错的直接原因是代码中重复选择了同一列:
在select("TECHNOLOGY","OBJECTTYPE","OBJECTTYPE","SIZE","EFFORT")语句里,OBJECTTYPE被连续指定了两次,这会让Snowpark返回的结果包含两个完全同名的列。
而Pandas DataFrame要求列索引必须是唯一的,当Snowpark尝试将结果转换为Pandas DataFrame时,检测到非唯一的列索引,就会抛出SnowparkFetchDataException: (1406): Failed to fetch a Pandas Dataframe. The error is: Found non-unique column index错误。
修正方案
- 去掉重复的列名,修改为:
return session.table([DB,SCHEMA, MANUAL_METRICS_BY_SIZE]).select("TECHNOLOGY","OBJECTTYPE","SIZE","EFFORT").to_pandas() - 如果确实需要两次选择该列(比如要对同一列做不同处理),可以给其中一个列重命名:
from snowflake.snowpark.functions import col return session.table([DB,SCHEMA, MANUAL_METRICS_BY_SIZE]).select("TECHNOLOGY","OBJECTTYPE",col("OBJECTTYPE").alias("OBJECTTYPE_DUP"),"SIZE","EFFORT").to_pandas()
内容的提问来源于stack exchange,提问作者orellabac
相关产品推荐
相关产品推荐

