Condividi tramite


SDK in lingua inglese per Apache Spark

Nota

Questo articolo illustra l'SDK in lingua inglese per Apache Spark. Questo SDK in lingua inglese per Apache Spark non è supportato direttamente da Databricks. Per dar feedback, fare domande e segnalare problemi, utilizzare la scheda Issues nel repository English SDK per Apache Spark su GitHub.

L'SDK in lingua inglese per Apache Spark accetta istruzioni in inglese e le compila in oggetti Spark. L'obiettivo è quello di rendere Spark più intuitivo e accessibile, che consente di concentrare le proprie attività sull'estrazione di informazioni dettagliate dai dati.

Le informazioni seguenti includono un esempio che descrive come usare un notebook Python di Azure Databricks per chiamare l'SDK in lingua inglese per Apache Spark. Questo esempio usa una semplice domanda in inglese per guidare l'SDK in lingua inglese per Apache Spark per eseguire una query SQL in una tabella dall'area di lavoro di Azure Databricks.

Requisiti

  • Databricks ha rilevato che GPT-4 funziona in modo ottimale con l'SDK in lingua inglese per Apache Spark. Questo articolo usa GPT-4 e presuppone che si disponga di una chiave API OpenAI associata a un piano di fatturazione OpenAI. Per avviare un piano di fatturazione OpenAI, accedere all'indirizzo https://platform.openai.com/account/billing/overview, fare clic su Avvia piano di pagamentoe seguire le istruzioni visualizzate. Dopo aver avviato un piano di fatturazione OpenAI, per generare una chiave API OpenAI, accedere al https://platform.openai.com/account/api-keys e fare clic su Crea nuova chiave privata.
  • Questo esempio usa un notebook Python di Azure Databricks che è possibile usare in un'area di lavoro di Azure Databricks connessa a un cluster Di Azure Databricks.

Passaggio 1: Installare il pacchetto Python per l'SDK in lingua inglese per Apache Spark

Nella prima cella del notebook eseguire il codice seguente, che installa la versione più recente del pacchetto Python dell'SDK in inglese per Apache Spark nella risorsa di calcolo associata.

%pip install pyspark-ai --upgrade

Passaggio 2: Riavviare il kernel Python per usare il pacchetto aggiornato

Nella seconda cella del notebook, eseguire il codice seguente, che riavvia il kernel Python per utilizzare il pacchetto Python aggiornato per l'SDK di Apache Spark in lingua inglese e le sue dipendenze di pacchetto aggiornate.

dbutils.library.restartPython()

Passaggio 3: Impostare la chiave API OpenAI

Nella terza cella del notebook eseguire il codice seguente, che imposta una variabile di ambiente denominata OPENAI_API_KEY sul valore della chiave API OpenAI. L'SDK in lingua inglese per Apache Spark usa questa chiave OpenAPI per l'autenticazione con OpenAI. Sostituire <your-openai-api-key> con il valore della chiave API OpenAI:

import os

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

Importante

In questo esempio, per velocità e facilità d'uso, si inserisce in modo fisso la chiave API di OpenAI nel notebook. Negli scenari di produzione, è una buona pratica di sicurezza non incorporare direttamente la chiave API di OpenAI nei notebook. Un approccio alternativo consiste nell'impostare questa variabile di ambiente nel cluster collegato. Vedere Variabili di ambiente.

Passaggio 4: Impostare e attivare l'LLM

Nella quarta cella del notebook, esegui il codice seguente, che imposta il LLM che desideri utilizzare per l'SDK in inglese di Apache Spark e quindi attiva l'SDK per Apache Spark in inglese con il modello selezionato. Per questo esempio si usa GPT-4. Per impostazione predefinita, l'SDK in lingua inglese per Apache Spark cerca una variabile di ambiente denominata OPENAI_API_KEY e usa il relativo valore per l'autenticazione con OpenAI per usare 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()

Consiglio

Per usare GPT-4 come LLM predefinito, è possibile semplificare questo codice come segue:

from pyspark_ai import SparkAI

spark_ai = SparkAI()
spark_ai.activate()

Passaggio 5: Creare un dataframe di origine

Nella quinta cella del notebook eseguire il codice seguente, che seleziona tutti i dati nella tabella samples.nyctaxi.trips dall'area di lavoro di Azure Databricks e archivia questi dati in un dataframe ottimizzato per l'uso con l'SDK in lingua inglese per Apache Spark. Questo dataframe è rappresentato qui dalla variabile df:

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

Passaggio 6: Eseguire una query sul dataframe usando una domanda in inglese normale

Nella sesta cella del notebook eseguire il codice seguente, che chiede all'SDK in inglese di Apache Spark di visualizzare la distanza media delle corse, al decimale più vicino, per ogni giorno di gennaio 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()

L'SDK in lingua inglese per Apache Spark stampa l'analisi e la risposta finale come indicato di seguito:

> 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.

L'SDK in lingua inglese per Apache Spark esegue la risposta finale e stampa i risultati come indicato di seguito:

+-----------+-----------------+
|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

Passaggi successivi

  • Provare a creare il dataframe, rappresentato in questo esempio dalla variabile df, con dati diversi.
  • Provare a usare diverse domande in inglese normale per la funzione df.ai.transform.
  • Provare a usare modelli GPT-4 diversi. Vedere GPT-4.
  • Esplorare altri esempi di codice. Vedere le risorse aggiuntive seguenti.

Risorse aggiuntive