Aller au contenu principal

SDK anglais pour Apache Spark

remarque

Cet article couvre l'English SDK for Apache Spark. Cet English SDK for Apache Spark n'est pas directement pris en charge par Databricks. Pour fournir des commentaires, poser des questions et signaler des problèmes, utilisez l'tab Issues dans le repository English SDK for Apache Spark sur GitHub.

Le SDK anglais pour Apache Spark prend les 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 vous pouvez utiliser un Notebook Python Databricks pour appeler le SDK anglais pour Apache Spark. Cet exemple utilise une question en anglais simple pour guider le SDK en anglais pour Apache Spark afin d’exécuter une query SQL sur une table de votre Workspace Databricks.

Exigences

  • Databricks a constaté que GPT-4 fonctionne de manière optimale avec le SDK anglais pour Apache Spark. Cet article utilise GPT-4 et suppose que vous disposez d'une clé OpenAI API associée à un plan de facturation OpenAI. Pour start un forfait de facturation OpenAI, connectez-vous à l'adresse https://platform.openai.com/account/billing/overview. cliquez sur Start payment plan , et suivez les instructions à l'écran. Après avoir start un plan de facturation OpenAI, pour générer une clé OpenAI API, connectez-vous à https://platform.openai.com/account/api-keys et cliquez sur Créer une nouvelle clé secrète .
  • Cet exemple utilise un Notebook Python Databricks que vous pouvez utiliser dans un Workspace Databricks connecté à un cluster Databricks.

Étape 1 : Installer le package Python pour le SDK anglais pour Apache Spark

Dans la première cellule du Notebook, exécutez le code suivant, qui installe sur la ressource de compute attachée la dernière version du package Python pour le 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 pour utiliser le package Python mis à jour pour le SDK Python pour Apache Spark et ses dépendances de package mises à jour :

Python
dbutils.library.restartPython()

Étape 3 : Définissez votre clé API OpenAI.

Dans la troisième cellule du notebook, 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 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 :

Python
import os

os.environ['OPENAI_API_KEY'] = '<your-openai-api-key>'
important

Dans cet exemple, pour des raisons de rapidité et de facilité d'utilisation, vous intégrez 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 Notebook, exécutez le code suivant, qui définit le LLM que vous souhaitez que le SDK anglais pour Apache Spark utilise, puis active le SDK anglais pour Apache Spark avec le modèle sélectionné. Pour cet exemple, vous utilisez GPT-4. Par default, le 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 afin d'utiliser GPT-4 :

Python
from langchain.chat_models import ChatOpenAI
from pyspark_ai import SparkAI

chatOpenAI = ChatOpenAI(model = 'gpt-4')

spark_ai = SparkAI(llm = chatOpenAI)
spark_ai.activate()
astuce

Pour utiliser GPT-4 comme LLM par default, vous pouvez simplifier ce code comme suit :

Python
from pyspark_ai import SparkAI

spark_ai = SparkAI()
spark_ai.activate()

Étape 5 : Créer un DataFrame source

Dans la cinquième cellule du Notebook, exécutez le code suivant, qui sélectionne toutes les données de la table samples.nyctaxi.trips de votre Workspace Databricks et stocke ces données dans un DataFrame qui est optimisé pour fonctionner avec le SDK anglais pour Apache Spark. Ce DataFrame est représenté ici par la variable df:

Python
df = spark_ai._spark.sql("SELECT * FROM samples.nyctaxi.trips")

Étape 6 : Interrogez le DataFrame en posant une question en langage naturel

Dans la sixième cellule du Notebook, exécutez le code suivant, qui demande au SDK anglais pour Apache Spark d'imprimer la distance moyenne parcourue, au dixième près, pour chaque jour de janvier 2016.

Python
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 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 SDK anglais pour Apache Spark exécute sa réponse finale et affiche 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 des données différentes.
  • Essayez d'utiliser différentes questions en anglais simple pour la fonction df.ai.transform.
  • Essayez d'utiliser différents modèles GPT-4. Voir GPT-4.
  • Explorez d'autres exemples de code. Veuillez consulter les ressources supplémentaires suivantes.

Ressources supplémentaires