如何在 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 的某一列?的主要内容,如果未能解决你的问题,请参考以下文章

基于pyspark中仅一列的两个DataFrame之间的差异[重复]

PySpark collect_set 中仅针对字符串列不保留顺序

如何在我的应用程序中仅打印一次警报视图?

如何在 pyspark 管道中打印最佳模型参数

如何在pyspark中打印具有特征名称的随机森林的决策路径?

如何在 jupyter 中像 pandas Dataframe 一样打印 Pyspark Dataframe