Konvertieren Sie die Spark-Liste in den Pandas-Datenrahmen
-
Verwenden Sie die
topandas()
-Methoden, um die Spark-Liste in den Pandas-Datenrahmen zu konvertieren -
Verwenden Sie die Funktion
parallelize()
, um die Spark-Liste in den Datenrahmen von Python Pandas zu konvertieren - Abschluss
In diesem Artikel wird die Spark-Zeilenliste in einen Pandas-Datenrahmen konvertiert.
Verwenden Sie die topandas()
-Methoden, um die Spark-Liste in den Pandas-Datenrahmen zu konvertieren
Syntax von createDataframe()
:
current_session.createDataFrame(data, schema=None, samplingRatio=None, verifySchema=True)
Parameter:
data
: Dieser Parameter enthält Daten oder Datensätze in Form von SQL/MySQL.schema
: Enthält den Spaltennamen für den Datenrahmen.sampling Ratio
(float): Dies ist das Verhältnis der Zeile.Schema verifizieren
(bool): Dies ist vom booleschen Typ, um die Datentypen des Schemas zu überprüfen.
Die obigen Parameter geben das Spark-Datenrahmenobjekt zurück. Ein Beispiel für die obigen Verfahren ist wie folgt.
Wir übergeben zuerst die Zeilenlistendaten mit dieser Funktion und erstellen einen Spark-Datenrahmen. Dann importieren wir PySpark und andere verwandte Module.
Code:
import pyspark
from pyspark.sql import SparkSession
from pyspark.sql import Row
row_pandas_session = SparkSession.builder.appName("row_pandas_session").getOrCreate()
row_object_list = [
Row(Topic="Machine Learning", Difficulty=10),
Row(Topic="Artifical Intligence", Difficulty=5),
Row(Topic="Deep learning", Difficulty=6),
Row(Topic="Python Ptogramming", Difficulty=7),
]
Verwenden Sie zum Erstellen eines Spark-Datenrahmens die Funktion createDataframe()
.
df = row_pandas_session.createDataFrame(row_object_list)
Wir verwenden die Funktion show()
, um den erstellten Spark-Datenrahmen anzuzeigen.
df.show()
Ausgang:
+--------------------+----------+
| Topic|Difficulty|
+--------------------+----------+
| Machine Learning| 10|
|Artifical Intligence| 5|
| Deep learning| 6|
| Python Ptogramming| 7|
+--------------------+----------+
Schließlich verwenden wir die Funktion topandas()
, um den Spark-Datenrahmen in einen Pandas-Datenrahmen zu konvertieren. Dann drucken wir den Pandas-Datenrahmen.
pandas_df = df.toPandas()
pandas_df
Ausgang:
Topic Difficulty
0 Machine Learning 10
1 Artifical Intligence 5
2 Deep learning 6
3 Python Ptogramming 7
Vollständiger Code:
import pyspark
from pyspark.sql import SparkSession
from pyspark.sql import Row
row_pandas_session = SparkSession.builder.appName("row_pandas_session").getOrCreate()
row_object_list = [
Row(Topic="Machine Learning", Difficulty=10),
Row(Topic="Artifical Intligence", Difficulty=5),
Row(Topic="Deep learning", Difficulty=6),
Row(Topic="Python Ptogramming", Difficulty=7),
]
df = row_pandas_session.createDataFrame(row_object_list)
df.show()
pandas_df = df.toPandas()
pandas_df
Verwenden Sie die Funktion parallelize()
, um die Spark-Liste in den Datenrahmen von Python Pandas zu konvertieren
Um ein RDD zu erstellen, verwenden wir die Funktion parallelize()
. Parallelisieren bezieht sich auf das Kopieren der Elemente einer vordefinierten Sammlung in einen verteilten Datensatz, auf dem wir parallele Operationen ausführen können.
Syntax:
sc.parallelize(data,numSlices)
Wo:
sc
: Spark-Kontextobjekt
Parameter:
Daten
: Dies sind die Daten oder Datensätze, die für RDD erstellt wurdennumSlices
: Gibt die Anzahl der Partitionen an. Dies ist ein optionaler Parameter.
Der folgende Code ist derselbe wie im vorherigen Abschnitt.
import pyspark
from pyspark.sql import SparkSession
from pyspark.sql import Row
row_pandas_session = SparkSession.builder.appName("row_pandas_session").getOrCreate()
row_object_list = [
Row(Topic="Machine Learning", Difficulty=10),
Row(Topic="Artifical Intligence", Difficulty=5),
Row(Topic="Deep learning", Difficulty=6),
Row(Topic="Python Ptogramming", Difficulty=7),
]
Jetzt erstellen wir einen Datenrahmen mit RDD.
rdd = row_pandas_session.sparkContext.parallelize(row_object_list)
rdd
Ausgang:
ParallelCollectionRDD[11] at readRDDFromFile at PythonRDD.scala:274
Jetzt erstellen wir den Datenrahmen, wie unten gezeigt.
df = row_pandas_session.createDataFrame(rdd)
df.show()
Ausgang:
+--------------------+----------+
| Topic|Difficulty|
+--------------------+----------+
| Machine Learning| 10|
|Artifical Intligence| 5|
| Deep learning| 6|
| Python Ptogramming| 7|
+--------------------+----------+
Konvertieren Sie es schließlich in einen Pandas-Datenrahmen.
df2 = df.toPandas()
print(df2)
Ausgang:
Topic Difficulty
0 Machine Learning 10
1 Artifical Intligence 5
2 Deep learning 6
3 Python Ptogramming 7
Abschluss
In diesem Artikel haben wir zwei Methoden verwendet. Wir verwenden zuerst die Funktion createDataframe()
, gefolgt von der Funktion topandas()
, um die Spark-Liste in einen Pandas-Datenrahmen zu konvertieren.
Die zweite Methode, die wir verwendet haben, ist die Funktion parallelize()
. Bei dieser Methode haben wir zuerst den Spark-Datenrahmen mit derselben Funktion wie in der vorherigen Methode erstellt und dann RDD verwendet, um den Spark-Datenrahmen zu parallelisieren und zu erstellen.
Der Spark-Datenrahmen wird dann mit der Funktion topandas()
in einen Pandas-Datenrahmen konvertiert.