如何在ipython中将Spark RDD转换为pandas数据帧?

如何在ipython中将Spark RDD转换为pandas数据帧?,python,pandas,ipython,pyspark,rdd,Python,Pandas,Ipython,Pyspark,Rdd,我有一个RDD,我想把它转换成pandasdataframe。我知道,要将RDD转换为正常的数据帧,我们可以这样做 df = rdd1.toDF() 但是我想将RDD转换为pandasdataframe,而不是普通的dataframe。我该怎么做?您可以使用以下功能: 将此数据帧的内容返回为Pandas.DataFrame 这仅在熊猫已安装且可用时可用 您必须使用Spark数据帧作为RDD和所需数据帧之间的中间步骤 例如,假设我有一个文本文件,flights.csv,它已读入RDD: flig

我有一个
RDD
,我想把它转换成
pandas
dataframe
。我知道,要将RDD转换为正常的数据帧,我们可以这样做

df = rdd1.toDF()
但是我想将
RDD
转换为
pandas
dataframe
,而不是普通的
dataframe
。我该怎么做?

您可以使用以下功能:

将此数据帧的内容返回为Pandas.DataFrame

这仅在熊猫已安装且可用时可用


您必须使用Spark数据帧作为RDD和所需数据帧之间的中间步骤

例如,假设我有一个文本文件,
flights.csv
,它已读入RDD:

flights = sc.textFile('flights.csv')
您可以检查类型:

type(flights)
<class 'pyspark.rdd.RDD'>
type(pdsDF)
<class 'pandas.core.frame.DataFrame'>
您可以检查类型:

type(flights)
<class 'pyspark.rdd.RDD'>
type(pdsDF)
<class 'pandas.core.frame.DataFrame'>
类型(pdsDF)

我推荐joshlk的toPandas的快速版本

将熊猫作为pd导入
定义映射到熊猫(RDD):
“”“由于酸洗问题,需要在此处”“”
返回[pd.DataFrame(列表(RDD))]
def toPandas(df,n_分区=无):
"""
以快速方式将'df'的内容作为本地'pandas.DataFrame'返回。数据帧为
如果传递了'n_partitions',则重新分区。
:param df:pyspark.sql.DataFrame
:param n_分区:int或None
:return:pandas.DataFrame
"""
如果n_分区不是None:df=df.repartition(n_分区)
df_pand=df.rdd.mapPartitions(_map_to_pandas.collect())
df_pand=pd.concat(df_pand)
df_pand.columns=df.columns

return df_pand
我认为
pdsDF=sparkDF.toPandas
缺少()来实际调用该方法。它应该是:
pdsDF=sparkDF.toPandas()
toDF()和toPandas()之间的区别是什么?toDF()将RDD转换为Spark数据帧,而toPandas()将Spark数据帧转换为Pandas数据帧。这两种数据帧的类型不同。toDF()和toPandas()之间有什么区别?@jezrael,如何仅将spark df的前10行转换为pandas df?