Kit de développement logiciel (SDK) anglais pour Apache Spark
Remarque
Cet article décrit le Kit de développement logiciel (SDK) anglais pour Apache Spark. Ce SDK anglais pour Apache Spark n’est pas pris en charge directement par Databricks. Pour fournir des commentaires, poser des questions et signaler des problèmes, utilisez l’onglet Problèmes dans le référentiel Sdk Anglais pour Apache Spark dans GitHub.
Le Kit de développement logiciel (SDK) anglais pour Apache Spark prend des instructions en anglais et les compile en objets Spark. Son objectif est de rendre Spark plus convivial et accessible, ce qui vous permet de concentrer vos efforts sur l’extraction d’insights à partir de vos données.
Les informations suivantes incluent un exemple qui décrit comment utiliser un notebook Python Azure Databricks pour appeler le Kit de développement logiciel (SDK) anglais pour Apache Spark. Cet exemple utilise une question en anglais simple pour guider le Kit de développement logiciel (SDK) anglais pour Apache Spark afin d’exécuter une requête SQL sur une table à partir de votre espace de travail Azure Databricks.
Spécifications
- Databricks a constaté que GPT-4 fonctionne de manière optimale avec le Kit de développement logiciel (SDK) anglais pour Apache Spark. Cet article utilise GPT-4 et suppose que vous disposez d’une clé API OpenAI associée à un plan de facturation OpenAI. Pour démarrer un plan de facturation OpenAI, connectez-vous à https://platform.openai.com/account/billing/overview, cliquez sur Démarrer le plan de paiement, puis suivez les instructions à l’écran. Après avoir démarré un plan de facturation OpenAI, pour générer une clé API OpenAI, connectez-vous à https://platform.openai.com/account/api-keys et cliquez sur Créer une clé secrète.
- Cet exemple utilise un notebook Python Azure Databricks que vous pouvez utiliser dans un espace de travail Azure Databricks connecté à un cluster Azure Databricks.
Étape 1 : Installer le package Python pour le Kit de développement logiciel (SDK) anglais pour Apache Spark
Dans la première cellule du bloc-notes’, exécutez le code suivant, qui s’installe sur la ressource de calcul attachée la dernière version du package Python pour le Kit de développement logiciel (SDK) anglais pour Apache Spark :
%pip install pyspark-ai --upgrade
Étape 2 : Redémarrer le noyau Python pour utiliser le package mis à jour
Dans la deuxième cellule du notebook’, exécutez le code suivant, qui redémarre le noyau Python afin d’utiliser le package Python mis à jour pour le Kit de développement logiciel (SDK) anglais pour Apache Spark et ses dépendances de package mises à jour :
dbutils.library.restartPython()
Étape 3 : Définir votre clé API OpenAI
Dans la troisième cellule du bloc-notes’, exécutez le code suivant, qui définit une variable d’environnement nommée OPENAI_API_KEY
à la valeur de votre clé API OpenAI. Le Kit de développement logiciel (SDK) anglais pour Apache Spark utilise cette clé OpenAPI pour s’authentifier auprès d’OpenAI. Remplacez <your-openai-api-key>
par la valeur de votre clé API OpenAI :
import os
os.environ['OPENAI_API_KEY'] = '<your-openai-api-key>'
Important
Dans cet exemple, pour accélérer et faciliter l’utilisation, vous codez en dur votre clé API OpenAI dans le notebook. Dans les scénarios de production, il est recommandé de ne pas coder en dur votre clé API OpenAI dans vos notebooks. Une autre approche consiste à définir cette variable d’environnement sur le cluster attaché. Consultez Variables d’environnement.
Étape 4 : Définir et activer le LLM
Dans la quatrième cellule du bloc-notes’, exécutez le code suivant, qui définit le LLM que vous souhaitez que le KIT de développement logiciel (SDK) anglais pour Apache Spark utilise, puis active le Kit de développement logiciel (SDK) anglais pour Apache Spark avec le modèle sélectionné. Pour cet exemple, vous utilisez GPT-4. Par défaut, le Kit de développement logiciel (SDK) anglais pour Apache Spark recherche une variable d’environnement nommée OPENAI_API_KEY
et utilise sa valeur pour s’authentifier auprès d’OpenAI pour utiliser GPT-4 :
from langchain.chat_models import ChatOpenAI
from pyspark_ai import SparkAI
chatOpenAI = ChatOpenAI(model = 'gpt-4')
spark_ai = SparkAI(llm = chatOpenAI)
spark_ai.activate()
Conseil
Pour utiliser GPT-4 comme LLM par défaut, vous pouvez simplifier ce code comme suit :
from pyspark_ai import SparkAI
spark_ai = SparkAI()
spark_ai.activate()
Étape 5 : Créer un DataFrame source
Dans la cinquième cellule du bloc-notes’, exécutez le code suivant, qui sélectionne toutes les données de la table samples.nyctaxi.trips
à partir de votre espace de travail Azure Databricks et stocke ces données dans un DataFrame optimisé pour fonctionner avec le Kit de développement logiciel (SDK) anglais pour Apache Spark. Ce DataFrame est représenté ici par la variable df
:
df = spark_ai._spark.sql("SELECT * FROM samples.nyctaxi.trips")
Étape 6 : Interroger le DataFrame à l’aide d’une question en anglais simple
Dans la sixième cellule du notebook, exécutez le code suivant, qui demande au Kit de développement logiciel (SDK) anglais pour Apache Spark d’imprimer la distance moyenne de trajet, au dixième le plus proche, pour chaque jour au cours de janvier 2016.
df.ai.transform("What was the average trip distance for each day during the month of January 2016? Print the averages to the nearest tenth.").display()
Le Kit de développement logiciel (SDK) anglais pour Apache Spark imprime son analyse et sa réponse finale comme suit :
> Entering new AgentExecutor chain...
Thought: This can be achieved by using the date function to extract the date from the timestamp and then grouping by the date.
Action: query_validation
Action Input: SELECT DATE(tpep_pickup_datetime) as pickup_date, ROUND(AVG(trip_distance), 1) as avg_trip_distance FROM spark_ai_temp_view_2a0572 WHERE MONTH(tpep_pickup_datetime) = 1 AND YEAR(tpep_pickup_datetime) = 2016 GROUP BY pickup_date ORDER BY pickup_date
Observation: OK
Thought:I now know the final answer.
Final Answer: SELECT DATE(tpep_pickup_datetime) as pickup_date, ROUND(AVG(trip_distance), 1) as avg_trip_distance FROM spark_ai_temp_view_2a0572 WHERE MONTH(tpep_pickup_datetime) = 1 AND YEAR(tpep_pickup_datetime) = 2016 GROUP BY pickup_date ORDER BY pickup_date
> Finished chain.
Le Kit de développement logiciel (SDK) anglais pour Apache Spark exécute sa réponse finale et imprime les résultats comme suit :
+-----------+-----------------+
|pickup_date|avg_trip_distance|
+-----------+-----------------+
| 2016-01-01| 3.1|
| 2016-01-02| 3.0|
| 2016-01-03| 3.2|
| 2016-01-04| 3.0|
| 2016-01-05| 2.6|
| 2016-01-06| 2.6|
| 2016-01-07| 3.0|
| 2016-01-08| 2.9|
| 2016-01-09| 2.8|
| 2016-01-10| 3.0|
| 2016-01-11| 2.8|
| 2016-01-12| 2.9|
| 2016-01-13| 2.7|
| 2016-01-14| 3.3|
| 2016-01-15| 3.0|
| 2016-01-16| 3.0|
| 2016-01-17| 2.7|
| 2016-01-18| 2.9|
| 2016-01-19| 3.1|
| 2016-01-20| 2.8|
+-----------+-----------------+
only showing top 20 rows
Étapes suivantes
- Essayez de créer le DataFrame, représenté dans cet exemple par la variable
df
, avec différentes données. - Essayez d’utiliser différentes questions en anglais brut pour la fonction
df.ai.transform
. - Essayez d’utiliser différents modèles GPT-4. Voir GPT-4.
- Explorez des exemples de code supplémentaires. Consultez les ressources supplémentaires suivantes.
Ressources supplémentaires
- Le référentiel SDK anglais pour Apache Spark dans GitHub
- Le site web de documentation du KIT de développement logiciel (SDK) anglais pour Apache Spark
- Le billet de blog Présentation de l’anglais en tant que nouveau langage de programmation pour Apache Spark
- Annonce et démonstration du Kit de développement logiciel (SDK) Anglais pour Apache Spark lors de Sommet des données + IA de 2023
- La session Kit de développement logiciel (SDK) anglais pour Apache Spark lors du Sommet data + AI 2023