Data Flow-Integration mit Data Science
Mit Data Flow können Sie Data Science-Notizbücher konfigurieren, um Anwendungen interaktiv für Data Flow auszuführen.
Data Flow verwendet vollständig verwaltete Jupyter-Notizbücher, damit Data Scientists und Data Engineers Data Science-Anwendungen erstellen, visualisieren und debuggen sowie zusammen daran arbeiten können. Sie können diese Anwendungen in Python, Scala und PySpark schreiben. Sie können auch eine Data Science-Notebook-Session zur Ausführung von Anwendungen mit Data Flow verbinden. Die Datenflusskernels und -anwendungen, die auf Oracle Cloud Infrastructure Data Flow ausgeführt werden.
Apache Spark ist ein verteiltes Compute-System für die skalierbare Datenverarbeitung. Es unterstützt umfangreiche SQL-, Batch- und Streamverarbeitungs- und ML-Aufgaben. Spark SQL bietet datenbankähnliche Unterstützung. Um strukturierte Daten abzufragen, verwenden Sie Spark SQL. Es ist eine ANSI-Standard-SQL-Implementierung.
Data Flow-Sessions unterstützen das Autoscaling von Data Flow-Clusterfunktionen. Weitere Informationen finden Sie in der Data Flow-Dokumentation unter Autoscaling.
Data Flow-Sessions unterstützen die Verwendung von Conda-Umgebungen als anpassbare Spark-Laufzeitumgebungen.

- Einschränkungen
-
-
Data Flow-Sessions dauern bis zu 7 Tage oder 10.080 Minuten (maxDurationInMinutes).
- Data Flow-Sessions haben einen standardmäßigen inaktiven Timeout von 480 Minuten (8 Stunden) (idleTimeoutInMinutes). Sie können einen anderen Wert konfigurieren.
- Die Data Flow-Session ist nur über eine Data Science-Notebooksession verfügbar.
- Es werden nur Spark-Versionen 3.5.0 und 3.2.1 unterstützt.
-
Sehen Sie sich das Tutorialvideo an, um Data Science mit Data Flow Studio zu verwenden. Weitere Informationen zur Integration von Data Science und Data Flow finden Sie in der Dokumentation zum Oracle Accelerated Data Science-SDK.
Conda-Umgebung installieren
Führen Sie die folgenden Schritte aus, um Data Flow mit Data Flow Magic zu verwenden.
Data Flow mit Data Science verwenden
So führen Sie eine Anwendung mit Data Flow mit Data Science aus:
-
Stellen Sie sicher, dass die Policys für die Verwendung eines Notizbuchs mit Data Flow eingerichtet sind.
-
Stellen Sie sicher, dass die Data Science-Policys korrekt eingerichtet sind.
- Eine Liste aller unterstützten Befehle erhalten Sie mit dem Befehl
%help
. - Die Befehle in den folgenden Schritten gelten sowohl für Spark 3.5.0 als auch für Spark 3.2.1. In den Beispielen wird Spark 3.5.0 verwendet. Legen Sie den Wert von
sparkVersion
entsprechend der verwendeten Spark-Version fest.
Dataflow-Spark-Umgebung mit einer Conda-Umgebung anpassen
Sie können eine veröffentlichte Conda-Umgebung als Laufzeitumgebung verwenden.
spark-nlp bei Datenfluss ausführen
Führen Sie diese Schritte aus, um Spark-nlp zu installieren und in Data Flow auszuführen.
Sie müssen die Schritte 1 und 2 unter Data Flow-Spark-Umgebung mit einer Conda-Umgebung anpassen ausgeführt haben. Die spark-nlp-Library ist in der Conda-Umgebung pyspark32_p38_cpu_v2
vorinstalliert.
Beispiele
Im Folgenden finden Sie einige Beispiele für die Verwendung von Daten FlowMagic.
PySpark
sc
stellt den Spark dar und ist verfügbar, wenn der Magic-Befehl %%spark
verwendet wird. Die folgende Zelle ist ein spielerisches Beispiel zur Verwendung von sc
in einer Datenzelle FlowMagic. Die Zelle ruft die Methode .parallelize()
auf, mit der ein RDD, numbers
, aus einer Liste von Zahlen erstellt wird. Informationen über das RDD werden ausgegeben. Die Methode .toDebugString()
gibt eine Beschreibung des RDD zurück.%%spark
print(sc.version)
numbers = sc.parallelize([4, 3, 2, 1])
print(f"First element of numbers is {numbers.first()}")
print(f"The RDD, numbers, has the following description\n{numbers.toDebugString()}")
Spark SQL
Mit der Option -c sql
können Sie Spark SQL-Befehle in einer Zelle ausführen. In diesem Abschnitt wird das Dataset Citi Bike verwendet. Die folgende Zelle liest das Dataset in einen Spark-Dataframe und speichert es als Tabelle. Dieses Beispiel zeigt Spark SQL an.
%%spark
df_bike_trips = spark.read.csv("oci://dmcherka-dev@ociodscdev/201306-citibike-tripdata.csv", header=False, inferSchema=True)
df_bike_trips.show()
df_bike_trips.createOrReplaceTempView("bike_trips")
Im folgenden Beispiel wird die Option -c sql
verwendet, um Daten FlowMagic mitzuteilen, dass der Inhalt der Zelle SparkSQL ist. Mit der Option -o <variable>
werden die Ergebnisse des Spark SQL-Vorgangs übernommen und in der definierten Variablen gespeichert. In diesem Fall sind
df_bike_trips
ein Pandas-Dataframe, der im Notizbuch verwendet werden kann.%%spark -c sql -o df_bike_trips
SELECT _c0 AS Duration, _c4 AS Start_Station, _c8 AS End_Station, _c11 AS Bike_ID FROM bike_trips;
df_bike_trips.head()
sqlContext
verwenden, um die Tabelle abzufragen:%%spark
df_bike_trips_2 = sqlContext.sql("SELECT * FROM bike_trips")
df_bike_trips_2.show()
%%spark -c sql
SHOW TABLES
Widget für automatische Visualisierung
Die Daten FlowMagic enthalten autovizwidget, das die Visualisierung von Pandas-Dataframes ermöglicht. Die Funktion display_dataframe()
verwendet einen Pandas-Dataframe als Parameter und generiert eine interaktive GUI im Notizbuch. Sie verfügt über Registerkarten, mit denen die Daten in verschiedenen Formen visualisiert werden können, wie z.B. tabellarisch, Kreisdiagramme, Streudiagramme sowie Flächen- und Balkendiagramme.
display_dataframe()
mit dem df_people
-Dataframe auf, der im Spark SQL-Abschnitt des Notizbuchs erstellt wurde:from autovizwidget.widget.utils import display_dataframe
display_dataframe(df_bike_trips)
Matplotlib
Data Scientists müssen häufig ihre Daten visualisieren. Bei großen Datasets ist es in der Regel nicht möglich und fast nie ratsam, die Daten aus dem Data Flow-Spark-Cluster in die Notebook-Session abzurufen. In diesem Beispiel wird gezeigt, wie Sie serverseitige Ressourcen verwenden, um ein Plot zu generieren und in das Notizbuch aufzunehmen.
%matplot plt
, um das Diagramm im Notizbuch anzuzeigen, obwohl sie serverseitig angezeigt wird:%%spark
import matplotlib.pyplot as plt
df_bike_trips.groupby("_c4").count().toPandas().plot.bar(x="_c4", y="count")
%matplot plt
Weitere Beispiele
Weitere Beispiele finden Sie unter GitHub unter Data Flow-Beispiele und Data Science-Beispiele.