如何在 PySpark 中仅打印 DataFrame 的某一列?

Posted

技术标签:

【中文标题】如何在 PySpark 中仅打印 DataFrame 的某一列?【英文标题】:How to print only a certain column of DataFrame in PySpark? 【发布时间】:2016-06-25 02:54:48 【问题描述】:

可以使用collecttake 操作仅打印给定的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】:

selectshow

df.select("col").show()

selectflatMapcollect

df.select("col").rdd.flatMap(list).collect()

方括号 (df[df.col]) 仅用于逻辑切片,列本身 (df.col) 不是分布式数据结构,而是 SQL 表达式,无法收集。

【讨论】:

以上是关于如何在 PySpark 中仅打印 DataFrame 的某一列?的主要内容,如果未能解决你的问题,请参考以下文章