我有一个RDD
,想把它转换成pandas
dataframe
。我知道要将RDD
转换为普通的dataframe
,我们可以这样做:
df = rdd1.toDF()
但我想将RDD
转换为pandas
dataframe
而不是普通的dataframe
,我该怎么做?
您可以使用函数toPandas()
:
将此DataFrame的内容作为Pandas pandas.DataFrame返回。
仅当安装并可用Pandas时才可用。
>>> df.toPandas()
age name
0 2 Alice
1 5 Bob
flights.csv
已经被读入到了一个RDD中:flights = sc.textFile('flights.csv')
您可以检查类型:
type(flights)
<class 'pyspark.rdd.RDD'>
如果你只是在RDD上使用toPandas()
,它不会起作用。根据你的RDD中对象的格式,可能需要进行一些处理才能首先转换为Spark DataFrame。对于这个例子,下面的代码可以完成这项工作:
# RDD to Spark DataFrame
sparkDF = flights.map(lambda x: str(x)).map(lambda w: w.split(',')).toDF()
#Spark DataFrame to Pandas DataFrame
pdsDF = sparkDF.toPandas()
您可以检查类型:
type(pdsDF)
<class 'pandas.core.frame.DataFrame'>
pdsDF = sparkDF.toPandas
缺少了()来实际调用方法。应该改为:pdsDF = sparkDF.toPandas()
。 - learn2day
spark df
的前10行转换为pandas df
? - Pyd