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

如何从Snowpark DataFrame提取数组,保留list[str]类型而非转为字符串?

解决Snowpark DataFrame提取数组变为字符串的问题

当你从Snowpark DataFrame中提取数组类型字段时,若遇到collect()或to_pandas()后数组被转为JSON格式字符串的情况,可以通过以下方式将其转换为list[str]类型:

方法1:提取后用JSON解析

利用Python标准库json的loads()方法,将序列化后的字符串解析为列表:

import json
from snowflake.snowpark import Session

# 初始化会话(此处省略会话配置)
session = Session.builder.configs(...).create()

dataframe = session.create_dataframe([[["some", "data", "here"]]], ["data"])
collected_row = dataframe.collect()[0]
# 解析JSON字符串为list[str]
collected_array = json.loads(collected_row["data"])

print(type(collected_array))  # 输出: <class 'list'>
print(collected_array)       # 输出: ['some', 'data', 'here']

方法2:处理Pandas DataFrame场景

如果使用to_pandas()转换后列仍为字符串,可对目标列批量应用json.loads:

import json

df_pandas = dataframe.to_pandas()
# 将列中的每个JSON字符串解析为列表
df_pandas["data"] = df_pandas["data"].apply(json.loads)

print(type(df_pandas["data"][0]))  # 输出: <class 'list'>
print(df_pandas["data"][0])        # 输出: ['some', 'data', 'here']

问题说明

Snowpark在将分布式DataFrame中的数组类型数据序列化到本地Python环境时,会默认转为JSON格式的字符串,因此需要手动解析才能得到预期的list[str]类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 05:08:22