Ответ 1
Вы можете использовать функцию toPandas()
:
Возвращает содержимое этого DataFrame как Pandas pandas.DataFrame.
Это доступно, только если Pandas установлен и доступен.
>>> df.toPandas()
age name
0 2 Alice
1 5 Bob
У меня есть 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
Вам необходимо использовать 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'>