Intégration de Data Flow à Data Science
Avec Data Flow, vous pouvez configurer des blocs-notes Data Science pour exécuter des applications de manière interactive sur Data Flow.
Data Flow utilise des blocs-notes Jupyter entièrement gérés pour permettre aux analystes de données et aux ingénieurs de données de créer, de visualiser et de déboguer des applications d'ingénierie et de science des données, ainsi que de collaborer sur celles-ci. Vous pouvez écrire ces applications en Python, en Scala et en PySpark. Vous pouvez également connecter une session de bloc-notes Data Science à Data Flow pour exécuter des applications. Les applications et noyaux Data Flow sont exécutés sur Oracle Cloud Infrastructure Data Flow.
Apache Spark est un système de calcul distribué conçu pour traiter les données à l'échelle. Il prend en charge les traitements de flux de données, batch et SQL, ainsi que les tâches d'apprentissage automatique à grande échelle. Spark SQL fournit une prise en charge de type base de données. Pour interroger des données structurées, utilisez Spark SQL. Il s'agit d'une implémentation SQL de norme ANSI.
Data Flow Sessions prend en charge le redimensionnement automatique des fonctionnalités de cluster de Data Flow. Pour plus d'informations, reportez-vous à Redimensionnement automatique dans la documentation Data Flow.
Les sessions Data Flow prennent en charge l'utilisation d'environnements conda en tant qu'environnements d'exécution Spark personnalisables.

- Limites
-
-
Les sessions Data Flow peuvent durer jusqu'à 7 jours ou 10 080 minutes (maxDurationInMinutes).
- La valeur de délai d'inactivité par défaut des sessions Data Flow est de 8 heures (480) (idleTimeoutInMinutes). Vous pouvez configurer une autre valeur.
- La session Data Flow est uniquement disponible via une session de bloc-notes Data Science.
- Seules les versions 3.5.0 et 3.2.1 de Spark sont prises en charge.
-
Regardez le tutoriel vidéo sur l'utilisation de Data Science avec le studio Data Flow. Pour plus d'informations sur l'intégration de Data Science et Data Flow, reportez-vous également à la documentation du kit SDK Oracle Accelerated Data Science.
Installation de l'environnement conda
Suivez ces étapes pour utiliser Data Flow avec Data Flow Magic.
Utilisation de Data Flow avec Data Science
Procédez comme suit pour exécuter une application en utilisant Data Flow avec Data Science.
-
Assurez-vous que les stratégies permettant d'utiliser un bloc-notes avec Data Flow sont configurées.
-
Assurez-vous que les stratégies Data Science sont correctement configurées.
- Pour obtenir la liste de toutes les commandes prises en charge, utilisez la commande
%help
. - Les commandes des étapes suivantes s'appliquent à Spark 3.5.0 et à Spark 3.2.1. Spark 3.5.0 est utilisé dans les exemples. Définissez la valeur de
sparkVersion
en fonction de la version de Spark utilisée.
Personnalisation d'un environnement Spark Data Flow avec un environnement conda
Vous pouvez utiliser un environnement conda publié comme environnement d'exécution.
Exécution de spark-nlp sur Data Flow
Suivez ces étapes pour installer Spark-nlp et l'exécuter sur Data Flow.
Vous devez avoir effectué les étapes 1 et 2 décrites dans Personnalisation d'un environnement Spark Data Flow avec un environnement conda. La bibliothèque spark-nlp est préinstallée dans l'environnement conda pyspark32_p38_cpu_v2
.
Exemples
Voici des exemples d'utilisation des données FlowMagic.
PySpark
sc
représente Spark et est disponible lorsque la commande magique %%spark
est utilisée. La cellule suivante est un exemple d'utilisation de sc
dans une cellule de données FlowMagic. La cellule appelle la méthode .parallelize()
qui crée un RDD (Resilient Distributed Dataset), numbers
, à partir d'une liste de numéros. Les informations sur le RDD sont affichées. La méthode .toDebugString()
renvoie la description du RDD.%%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
L'option -c sql
permet d'exécuter des commandes Spark SQL dans une cellule. Dans cette section, l'ensemble de données de Citi Bike est utilisé. La cellule suivante lit l'ensemble de données dans une trame de données Spark et l'enregistre sous forme de table. Cet exemple est utilisé pour afficher Spark SQL.
%%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")
L'exemple suivant utilise l'option -c sql
pour indiquer aux données FlowMagic que le contenu de la cellule est SparkSQL. L'option -o <variable>
prend les résultats de l'opération Spark SQL et les stocke dans la variable définie. Dans ce cas,
df_bike_trips
est une trame de données Pandas pouvant être utilisée dans le bloc-notes.%%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
pour interroger la table :%%spark
df_bike_trips_2 = sqlContext.sql("SELECT * FROM bike_trips")
df_bike_trips_2.show()
%%spark -c sql
SHOW TABLES
Widget de visualisation automatique
Les données FlowMagic sont fournies avec autovizwidget, qui permet la visualisation des trames de données Pandas. La fonction display_dataframe()
prend une trame de données Pandas en tant que paramètre et génère une interface utilisateur graphique interactive dans le bloc-notes. Elle comporte des onglets qui affichent la visualisation des données dans différents formulaires, tels que des tableaux, des graphiques à secteurs, des diagrammes en nuage de points et des graphiques en zone et à barres.
display_dataframe()
avec la trame de données df_people
qui a été créée dans la section Spark SQL du bloc-notes :from autovizwidget.widget.utils import display_dataframe
display_dataframe(df_bike_trips)
Matplotlib
Une tâche courante des analystes de données consiste à visualiser leurs données. Avec des ensembles de données volumineux, il n'est généralement pas possible ni recommandé d'extraire les données du cluster Spark Data Flow vers la session de bloc-notes. Cet exemple montre comment utiliser les ressources côté serveur pour générer un tracé et l'inclure dans le bloc-notes.
%matplot plt
pour afficher le graphique dans le bloc-notes, même s'il est affiché côté serveur :%%spark
import matplotlib.pyplot as plt
df_bike_trips.groupby("_c4").count().toPandas().plot.bar(x="_c4", y="count")
%matplot plt
Autres exemples
D'autres exemples sont disponibles à partir de GitHub avec des échantillons Data Flow et des échantillons Data Science.