如何在 PySpark 中仅打印 DataFrame 的某一列?
Posted
技术标签:
【中文标题】如何在 PySpark 中仅打印 DataFrame 的某一列?【英文标题】:How to print only a certain column of DataFrame in PySpark? 【发布时间】:2016-06-25 02:54:48 【问题描述】:可以使用collect
或take
操作仅打印给定的DataFrame 列吗?
这个
df.col.collect()
报错
TypeError: 'Column' 对象不可调用
还有这个:
df[df.col].take(2)
给予
pyspark.sql.utils.AnalysisException: u"filter expression 'col' of type string is not a boolean.;"
【问题讨论】:
df['col'].collect()
工作还是 df['col'].take(2)
工作?
@EdChum 不,它会导致与我第一次尝试相同的错误
【参考方案1】:
select
和show
:
df.select("col").show()
或select
、flatMap
、collect
:
df.select("col").rdd.flatMap(list).collect()
方括号 (df[df.col]
) 仅用于逻辑切片,列本身 (df.col
) 不是分布式数据结构,而是 SQL 表达式,无法收集。
【讨论】:
以上是关于如何在 PySpark 中仅打印 DataFrame 的某一列?的主要内容,如果未能解决你的问题,请参考以下文章
基于pyspark中仅一列的两个DataFrame之间的差异[重复]
PySpark collect_set 中仅针对字符串列不保留顺序