Как преобразовать Spark RDD в pandas dataframe в ipython?

У меня есть RDD, и я хочу преобразовать его в pandas dataframe. Я знаю, что для преобразования и RDD в обычный dataframe мы можем сделать

df = rdd1.toDF()

Но я хочу преобразовать RDD в pandas dataframe, а не в обычный dataframe. Как я могу это сделать?

Ответ 1

Вы можете использовать функцию toPandas():

Возвращает содержимое этого DataFrame как Pandas pandas.DataFrame.

Это доступно, только если Pandas установлен и доступен.

>>> df.toPandas()  
   age   name
0    2  Alice
1    5    Bob

Ответ 2

Вам необходимо использовать 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'>