Intégration du service de flux de données au service de science des données
Avec le service de flux de données, vous pouvez configurer des carnets du service de science des données pour l'exécution interactive d'applications avec le service de flux de données.
Le service de flux de données utilise des carnets Jupyter entièrement gérés pour permettre aux spécialistes des données et aux ingénieurs de données de créer, de visualiser, de collaborer et de déboguer des applications d'ingénierie des données et de science des données. Vous pouvez écrire ces applications en Python, Scala et PySpark. Vous pouvez également connecter une session de carnet du service de science des données au service de flux de données pour exécuter des applications. Les noyaux et les applications de flux de données s'exécutent sur Oracle Cloud Infrastructure Data Flow .
Apache Spark est un système de calcul distribué conçu pour traiter des données à grande échelle. Il prend en charge les traitements SQL, par lots et de flux de données, ainsi que les tâches d'apprentissage automatique à grande échelle. Spark SQL offre 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 mise en oeuvre SQL ANSI standard.
Les sessions du service de flux de données prennent en charge l'ajustement automatique des capacités des grappes du service de flux de données. Pour plus d'informations, voir Ajustement automatique dans la documentation sur le service de flux de données.
Les sessions du service de flux de données prennent en charge l'utilisation d'environnements Conda en tant qu'environnements d'exécution Spark personnalisables.
- Limitations
-
-
Les sessions du service de flux de données durent jusqu'à 7 jours ou 10 080 minutes (maxDurationInMinutes).
- Les sessions du service de flux de données ont une valeur de délai d'attente par défaut de 480 minutes (8 heures) (idleTimeoutInMinutes). Vous pouvez configurer une valeur différente.
- La session du service de flux de données est disponible uniquement par l'intermédiaire d'une session de carnet du service de science des données.
- Seules les versions 3.5.0 et 3.2.1 de Spark sont prises en charge.
-
Regardez la vidéo du tutoriel sur l'utilisation du service de science des données avec Data Flow Studio. Consultez également la documentation sur la trousse SDK Oracle Accelerated Data Science pour plus d'informations sur l'intégration des services de science des données et de flux de données.
Installation de l'environnement Conda
Suivez les présentes étapes pour utiliser le service de flux de données avec Data Flow Magic.
Utilisation du service de flux de données avec le service de science des données
Suivez ces étapes pour exécuter une application à l'aide du service de flux de données avec le service de science des données.
-
Assurez-vous que les politiques pour utiliser un carnet avec le service de flux de données sont configurées.
-
Assurez-vous que les politiques du service de science des données sont configurées correctement.
- Pour obtenir la liste de toutes les commandes prises en charge, utilisez la commande
%help. - Les commandes des étapes suivantes s'appliquent à la fois à Spark 3.5.0 et à Spark 3.2.1. Spark 3.5.0 est utilisé dans les exemples. Définissez la valeur de
sparkVersionen fonction de la version de Spark utilisée.
Personnalisation d'un environnement Spark de flux de données avec un environnement Conda
Vous pouvez utiliser un environnement Conda publié en tant qu'environnement d'exécution.
Exécution de spark-nlp dans le service de flux de données
Suivez les étapes ci-dessous pour installer Spark-nlp et l'exécuter dans le service de flux de données.
Vous devez avoir terminé les étapes 1 et 2 de la rubrique Personnalisation d'un environnement Spark de flux de données avec un environnement Conda. La bibliothèque spark-nlp est préinstallée dans l'environnement Conda pyspark32_p38_cpu_v2.
Exemples
Voici quelques exemples d'utilisation de Data FlowMagic.
PySpark
sc représente Spark et est disponible lorsque la commande magique %%spark est utilisée. La cellule suivante montre un exemple simple d'utiliser sc dans une cellule Data FlowMagic. La cellule appelle la méthode .parallelize() , qui crée un jeu de données RDD, numbers, à partir d'une liste de nombres. Les informations relatives au RDD sont affichées. La méthode .toDebugString() retourne une 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'utilisation de l'option -c sql vous permet d'exécuter des commandes Spark SQL dans une cellule. Dans cette section, le jeu de données citi bike est utilisé. La cellule suivante lit le jeu de données dans un structure 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 à Data FlowMagic que la cellule contient du contenu SparkSQL. L'option -o <variable> stocke les résultats de l'opération Spark SQL dans la variable définie. Dans ce cas,
df_bike_trips est une structure de données Pandas disponible pour être utilisée dans le carnet.%%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 TABLESWidget de visualisation automatique
Les données FlowMagic sont fournies avec autovizwidget qui permet la visualisation des structures de données Pandas. La fonction display_dataframe() utilise une structure de données Pandas comme paramètre et génère une interface graphique interactive dans le carnet. Des onglets présentent la visualisation des données sous différentes formes, telles que des tableaux, des graphiques à secteurs, des graphiques en nuage de points et des graphiques en aires et à barres.
display_dataframe() avec la structure de données df_people créée dans la section Spark SQL du carnet :from autovizwidget.widget.utils import display_dataframe
display_dataframe(df_bike_trips)Matplotlib
Une tâche commune effectuée par les experts en science des données consiste à visualiser leurs données. Dans le cas de jeux de données volumineux, cela n'est généralement pas possible et il est presque toujours préférable d'extraire les données de la grappe Spark du service de flux de données dans la session de carnet. Cet exemple montre comment utiliser des ressources côté serveur pour générer un tracé et l'inclure dans le carnet.
%matplot plt pour afficher le tracé dans le carnet, même s'il est rendu côté serveur :%%spark
import matplotlib.pyplot as plt
df_bike_trips.groupby("_c4").count().toPandas().plot.bar(x="_c4", y="count")
%matplot pltAutres exemples
D'autres exemples sont disponibles dans GitHub avec des échantillons de flux de données et des échantillons de science des données.