2016-01-15 17 views

Odpowiedz

15

Można użyć funkcji toPandas():

Zwraca zawartość tego DataFrame jak pandy pandas.DataFrame.

Jest to dostępne tylko, jeśli Panda jest zainstalowana i dostępna.

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

Będziesz musiał użyć DataFrame Spark jako pośredni etap pomiędzy twoją RDD i pożądanego pandy DataFrame.

Na przykład, powiedzmy, że mam plik tekstowy, flights.csv, które zostały odczytane w do RDD:

flights = sc.textFile('flights.csv') 

Można sprawdzić typ:

type(flights) 
<class 'pyspark.rdd.RDD'> 

Jeśli wystarczy użyć toPandas() na RDD, to nie zadziała. W zależności od formatu obiektów w RDD, niektóre przetwarzanie może być konieczne, aby przejść do Spark DataFrame. W przypadku tego przykładu, kod ten spełnia swoje zadanie:

# 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() 

Można sprawdzić typ:

type(pdsDF) 
<class 'pandas.core.frame.DataFrame'> 
+2

myślę 'pdsDF = sparkDF.toPandas' brakuje() faktycznie nazwać metoda. Powinno to być: 'pdsDF = sparkDF.toPandas()' – learn2day

Powiązane problemy