In diesem Teil werden wir hauptsächlich mit Python und Spark über die DataFrame Syntax arbeiten. Wenn Sie mit Pandas in Python, R, SQL oder sogar Excel gearbeitet haben, wird sich ein DataFrame sehr vertraut fühlen!
- Spark DataFrames enthalten Daten in einem Spalten- und Zeilenformat
- Jede Spalte repräsentiert ein Merkmal oder eine Variable
- Jede Zeile repräsentiert einen einzelnen Datenpunkt
Spark DataFrames können Daten aus einer Vielzahl von Quellen eingeben und ausgeben. Wir können diese DataFrames dann verwenden, um verschiedene Transformationen auf die Daten anzuwenden. Am Ende dieser Transformation können wir das anzuzeigende Ergebnis entweder anzeigen, oder sammeln, oder für eine endgültige Verarbeitung.
Wie erstelle ich einen DataFrame?
Ein DataFrame in Spark kann auf verschiedene Arten erstellt werden:
- Verwendung verschiedener Datenformate. Laden Sie beispielsweise die Daten aus JSON, CSV
- Laden von Daten aus vorhandenem RDD
- Programmgesteuertes Festlegen des Schemas

DataFrame Basics für PySpark
Lassen Sie uns zu Jupiter Notebook rüberspringen und beginnen. Bevor wir mit Spark arbeiten können, müssen wir die Sitzung starten. Wenn Sie diesen Befehl zum ersten Mal ausführen, benötigen Sie paar Minuten, um ihn auszuführen.
from pyspark import SparkSession spark= SparkSession.builder.appname('Basics').get0Create()
Als nächstes möchten wir einen Datensatz lesen. Es gibt viele Optionen für In- und Outputs, aber im Moment werden wir eine JSON-Datei verwenden.
df = spark.read.json('people.json')
Jetzt haben wir unseren DataFrame. Lassen Sie uns ein wenig von diesen Daten zeigen. Die fehlenden Daten werden durch null ersetzt.

Wenn Sie das Schema des DataFrame sehen möchten, verwenden Sie die Schemamethode:

Wenn Sie nur die Spaltennamen sehen möchten:

Basic DataFrame Verben in Spark
Select
Ich kann eine Teilmenge von Spalten auswählen. Die Methode select () verwendet entweder eine Liste mit Spaltennamen oder eine entpackte Liste mit Namen.
cols1 = ['PassengerId', 'Name']
df1.select(cols1).show(
)+-----------+--------+
|PassengerId| Name|
+-----------+--------+
| 1| Owen|
| 2|Florence|
| 3| Laina|
| 4| Lily|
| 5| William|
+-----------+--------+
Filter
Sie können eine Teilmenge von Zeilen filtern. Die Methode filter () akzeptiert Spaltenausdrücke oder SQL-Ausdrücke.
df1.filter(df1.Sex == 'female').show
()+-----------+--------+------+--------+
|PassengerId| Name| Sex|Survived|
+-----------+--------+------+--------+
| 2|Florence|female| 1|
| 3| Laina|female| 1|
| 4| Lily|female| 1|
+-----------+--------+------+--------+
Erstellen Sie neue Spalten
Sie können neue Spalten in Spark mit .withColumn () erstellen. Ich habe bisher eine bequeme Möglichkeit gefunden, mehrere Spalten gleichzeitig zu erstellen, ohne mehrere .withColumn () Methoden zu verketten.
df2.withColumn('AgeTimesFare', df2.Age*df2.Fare).show()
+-----------+---+----+------+------------+ |PassengerId|Age|Fare|Pclass|AgeTimesFare|
+-----------+---+----+------+------------+
| 1| 22| 7.3| 3| 160.6|
| 2| 38|71.3| 1| 2709.4|
| 3| 26| 7.9| 3| 205.4|
| 4| 35|53.1| 1| 1858.5|
| 5| 35| 8.0| 3| 280.0|
+-----------+---+----+------+------------+