Python 在pyspark shell中预览列

Python 在pyspark shell中预览列,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,短版: 如何在pyspark shell中预览列 我有一个类型为pyspark.sql.column.column的对象a,当我执行a.show()时,我得到TypeError:“column”对象不可调用 想知道是否有与pandas功能相当的pyspark,以便在将列转换为pyspark数据帧后使用show() 长版本: 我将以下数据设置为df: +----------+-------------------+--------+ | number| p_efc_dtm|

短版:

如何在pyspark shell中预览列

我有一个类型为
pyspark.sql.column.column
的对象
a
,当我执行
a.show()
时,我得到
TypeError:“column”对象不可调用

想知道是否有与pandas功能相当的pyspark,以便在将列转换为pyspark数据帧后使用
show()

长版本:

我将以下数据设置为
df

+----------+-------------------+--------+
|    number|          p_efc_dtm|cus_type|
+----------+-------------------+--------+
|0000000000|2010-05-25 00:05:10|       1|
|0015195163|2013-01-03 19:01:10|       1|
|0018283269|2006-10-01 00:10:09|       1|
|0018988813|2012-11-29 17:11:45|       1|
|0020095510|2012-03-09 09:03:44|       1|
|0023688381|2008-03-13 00:03:51|       1|
|0024651256|2009-09-22 00:09:09|       1|
|0025647711|2015-01-13 18:01:27|       1|
+----------+--------------------+--------+
df

from pyspark.sql.window import Window
import pyspark.sql.functions as F

ws = Window.partitionBy(df['number']).orderBy(df['p_efc_dtm'].desc())

a = F.max(df['p_efc_dtm']).over(ws)
如何查看
a
的内容



我使用的是Spark 1.6.0 atm。

您这样做是错误的

a = F.max(df['p_efc_dtm']).over(ws)
a
只是对max函数调用的引用

你应该做什么

a = df.select(F.max(df['p_efc_dtm']).over(ws))
然后
a.show()
应该可以工作了

如果您想查看下面评论中提到的
number
列,则可以
选择
作为

a = df.select(df['number'], F.max(df['p_efc_dtm']).over(ws).alias('dtm'))
或者,如果希望查看所有原始列,则可以使用
with column
作为

a = df.withColumn('dtm', F.max(df['p_efc_dtm']).over(ws))

你这样做是错的

a = F.max(df['p_efc_dtm']).over(ws)
a
只是对max函数调用的引用

你应该做什么

a = df.select(F.max(df['p_efc_dtm']).over(ws))
然后
a.show()
应该可以工作了

如果您想查看下面评论中提到的
number
列,则可以
选择
作为

a = df.select(df['number'], F.max(df['p_efc_dtm']).over(ws).alias('dtm'))
或者,如果希望查看所有原始列,则可以使用
with column
作为

a = df.withColumn('dtm', F.max(df['p_efc_dtm']).over(ws))

为了补充@Ramesh的答案,如果有人想要预览数据框中的pyspark列:
df.select()

df.select('number').show()

为了补充@Ramesh的答案,如果有人想要预览数据框中的pyspark列:
df.select()

df.select('number').show()
谢谢,有两点需要说明:1)在(ws)
上的
a=F.max(df['p\u efc\u dtm'])类型是
pyspark.sql.column.column
,这有点误导。我当时还以为是指某个专栏。2) 我有没有办法看到
number
列和
dtm
值?我想知道
a=df.select([F.max(df['p\u efc\u dtm'])over(ws),'number'])
是否将相应的数字返回到
dtm
值。谢谢,两个注释:1)类型
a=F.max(df['p\u efc\u dtm'])。over(ws)
pyspark.sql.column.column
,这有点误导。我当时还以为是指某个专栏。2) 我有没有办法看到
number
列和
dtm
值?我想知道
a=df.select([F.max(df['p\u efc\u dtm'])。over(ws),'number'])
是否将相应的数字返回到
dtm
值。