Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Spark-Grundlagen

Die ganze Lektion steht hier zum Lesen. Erstellen Sie ein kostenloses Konto, um sie in einem Live-Lab auszuführen.

Container-Lab7 Min. Lesezeit5 Befehle

Was du machst

Apache Spark ist ein Werkzeug für Tabellen mit Daten, die für ein einzelnes Programm zu groß sind. Es teilt die Arbeit in Jobs auf. Ein DataFrame ist Sparks Wort für eine Tabelle. Du kannst ihr Fragen mit Code oder mit SQL stellen. Dein Lab hat ein kleines Spark und eine Datei mit 24 Bestellungen. Du siehst sie dir an, filterst sie, gruppierst und zählst sie, stellst eine ähnliche Frage in SQL und suchst dann die Arbeit in der Spark UI.

Bevor du anfängst

Notiz

Klicke oben in der Leiste dieser Lektion auf Lab starten und warte, bis dort steht, dass es läuft. Es gibt einen Container, spark, und das Terminal erreicht ihn unter diesem Namen auf Port 8000. Der Link Spark UI öffnet seine Webseite, Port 4040. Jede Schaltfläche Ausführen unten tippt ihren Befehl ins Terminal deines Labs, einen nach dem anderen in derselben Sitzung. Wenn du zuschauen oder eigene Befehle tippen willst, klicke in der Leiste auf Terminal öffnen (neuer Tab).

1. Sieh dir die Daten an

Spark hat orders.csv in eine Tabelle namens orders gelesen. Diese SQL-Frage verlangt fünf Zeilen davon. Die Antwort ist eine Tabelle, deren erste Zeile die Bestellung 1001 ist: Ada, aus UK, zwei Tastaturen zu 25.0. Das curl schickt deine Frage an den Abfragedienst des Labs und gibt die Antwort aus.

Befehl
curl -s -d 'SELECT * FROM orders LIMIT 5' http://spark:8000/sql

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

2. Filtere mit einem DataFrame

Dieselbe Tabelle ist ein DataFrame namens orders, und filter behält die Zeilen, die passen. Dieser Befehl behält die Bestellungen aus UK: Die Antwort ist eine Tabelle mit sieben Zeilen. Der zweite Befehl zählt stattdessen alle Zeilen und gibt 24 aus.

Befehl
curl -s -d 'orders.filter(orders.country == "UK")' http://spark:8000/df

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Befehl
curl -s -d 'orders.count()' http://spark:8000/df

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

3. Gruppiere und zähle

groupBy sammelt die Zeilen, die ein Land teilen, und count zählt jede Gruppe. Die Antwort hat vier Zeilen: UK 7, Japan 6, France 6 und Spain 5. Die Reihenfolge kann anders sein, denn Spark verspricht keine, solange du nicht danach fragst.

Befehl
curl -s -d 'orders.groupBy("country").count()' http://spark:8000/df

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

4. Frage in SQL

Dieselbe Art Frage in SQL: Der Umsatz jedes Landes ist Menge mal Stückpreis, aufsummiert, der größte zuerst. In der Antwort steht Japan oben mit 717.5, dann UK mit 670.0, France 495.0 und Spain 490.0. Spark macht aus dem SQL und dem DataFrame-Code dieselbe Art von Plan.

Befehl
curl -s -d 'SELECT country, round(sum(quantity * unit_price), 2) AS revenue FROM orders GROUP BY country ORDER BY revenue DESC' http://spark:8000/sql

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

5. Sieh die Arbeit in der Spark UI

Öffne Spark UI in deinem Browser, über den Link in der Leiste oben in dieser Lektion. Der Tab Jobs listet die Arbeit auf, die Spark für deine Fragen gemacht hat. Der Tab SQL / DataFrame listet jede Abfrage mit dem Plan, nach dem sie lief. Führe einen Schritt noch einmal aus und sieh zu, wie ein neuer Eintrag erscheint. Davon machst du einen Screenshot, wenn du deine eigene Abfrage abgibst.

Für Lehrkräfte

Tipp

Diese Lektion ist ein kleines Beispiel für eine Lektion, die in einem Lab abläuft: Die Schritte und die Schaltflächen „Ausführen“ sind die Lektion, und das Lab ist die eigene Kopie jeder lernenden Person. Das Lab ist ein Dienst, und nichts hier bewertet sich selbst: Die Lernenden geben das Ergebnis einer eigenen Abfrage ab, einen Screenshot davon in der Spark UI und einen Satz dazu, was Spark getan hat. Es ist Spark im lokalen Modus, kein Cluster, und die Daten sind eine Datei mit 24 Zeilen. Die Lektion lehrt also die DataFrame- und SQL-Seite und nicht die Größenordnung. Kopiere es in dein eigenes Modul und ändere es, oder baue im Lektionseditor über das Menü Lab ein neues von Grund auf.

Über dieses Lab und seinen Quellcode: Apache-Spark-Lab: DataFrames und Spark SQL an einer CSV-Datei lernen, mit der Spark UI

Sie unterrichten eine Klasse? Weisen Sie diese Lektionen Ihren Lernenden zu, mit Bewertung und einem Lab für jede lernende Person.