Python 查看Spark Dataframe列的内容
我用的是Spark 1.3.1 我试图在Python中查看Spark dataframe列的值。对于Spark dataframe,我可以使用Python 查看Spark Dataframe列的内容,python,apache-spark,dataframe,pyspark,Python,Apache Spark,Dataframe,Pyspark,我用的是Spark 1.3.1 我试图在Python中查看Spark dataframe列的值。对于Spark dataframe,我可以使用df.collect()查看数据帧的内容,但是对于Spark dataframe列,没有我所能看到的最好的方法 例如,数据框df包含一个名为'zip\u code'的列。因此,我可以执行df['zip_code'],它会变成pyspark.sql.dataframe.Column类型,但我找不到查看df['zip_code']中的值的方法。您可以访问底层的
df.collect()
查看数据帧的内容,但是对于Spark dataframe列,没有我所能看到的最好的方法
例如,数据框
df
包含一个名为'zip\u code'
的列。因此,我可以执行df['zip_code']
,它会变成pyspark.sql.dataframe.Column
类型,但我找不到查看df['zip_code']
中的值的方法。您可以访问底层的RDD
,并映射到它
df.rdd.map(lambda r: r.zip_code).collect()
如果不介意使用行
对象包装结果,也可以使用选择
:
df.select('zip_code').collect()
最后,如果您只是想检查内容,那么show
方法就足够了:
df.select('zip_code').show()
要查看完整内容,请执行以下操作:
df.select("raw").take(1).foreach(println)
(show
将向您展示一个概述)。您可以简单地编写:
df.select('your column's name').show()
在您的情况下,它将是:
df.select('zip_code').show()
这里讨论的问题不是“如何查看数据帧的内容,而只是其中的一列?”,而是“给定一个Column类型的对象,而没有Dataframe类型的对象,如何查看该列的内容?@JordanPilat您不知道<代码>列不受任何执行计划的限制。这只不过是一个象征。回答得好!为了澄清,
Column
本身不包含任何数据,只表示一个或多个特定DataFrame
列的一系列0或多个转换。因此,在产生它的DataFrame
的上下文之外引用它是没有意义的。是吗?@JordanPilat它可以从一个表达式中构造出来,但最终它没有意义。考虑这一点:<代码> $“FO”< /代码>。它创建一个类为ColumnName
的对象,它是列
的子类。单凭它是没有意义的。我可以使用不同的DF进行评估,得到不同的结果(或例外情况)。如果您曾经使用R,请思考公式
。