Polars中如何不截断显示结构体列并选取结构体单个字段?
查看结构体列完整内容与选取单个字段的解决方法
1. 查看data_file列的完整内容
FMT_STR_LEN仅对普通字符串列生效,对结构体类型无效,可通过以下方式完整查看:
若使用PySpark
- 将结构体转为JSON字符串后关闭截断显示:
from pyspark.sql.functions import to_json, col df.withColumn("data_file_full", to_json(col("data_file"))).show(truncate=False) - 或直接收集数据后逐行打印:
for row in df.collect(): print(row.data_file)
若使用Polars
- 将结构体转为字符串并关闭截断:
import polars as pl df.with_columns(pl.col("data_file").cast(pl.Utf8)).show(truncate=False) - 或转换为Pandas DataFrame后显示(需提前设置Pandas显示参数):
import pandas as pd pd.set_option('display.max_colwidth', None) print(df.to_pandas())
2. 选取结构体的单个字段
直接通过层级索引即可,不同框架写法如下:
PySpark
# 方式1:字符串索引 df.select("data_file.目标字段名").show() # 方式2:使用col函数 from pyspark.sql.functions import col df.select(col("data_file.目标字段名")).show()
Polars
# 方式1:字符串索引 df.select(pl.col("data_file.目标字段名")) # 方式2:链式调用 df.select(pl.col("data_file").目标字段名)
内容的提问来源于stack exchange,提问作者doki
相关产品推荐
相关产品推荐

