我实际试图解决的问题是获取PySpark数据帧的前N行或后N行,并将结果作为数据帧。具体来说,我希望能够做到这样的事情:
my_df.head(20).toPandas()
但是,因为head()
返回行列表,我收到此错误:
AttributeError: 'list' object has no attribute 'toPandas'
所以,我正在寻找能够将前N行PySpark数据帧作为数据帧返回的方法,或者将这些行列表转换为数据帧的方法。有什么想法吗?
答案 0 :(得分:9)
使用limit
:
>>> df = sc.parallelize((("a", 1), ("b", 2))).toDF()
>>> df.limit(1).toPandas()
_1 _2
0 a 1
pd.DataFrame
:
>>> pd.DataFrame(df.head(1), columns=df.columns)
_1 _2
0 a 1