Вам нужно использовать Spark DataFrame в качестве промежуточного шага между вашим RDD и желаемым Pandas DataFrame.
Например, скажем, у меня есть текстовый файл flights.csv
, который был прочитайте в RDD:
flights = sc.textFile('flights.csv')
Вы можете проверить тип:
type(flights)
<class 'pyspark.rdd.RDD'>
Если вы просто используете toPandas()
на RDD, это не сработает. В зависимости от формата объектов в вашем 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'>