Delen via


Engelse SDK voor Apache Spark

Notitie

In dit artikel wordt de Engelse SDK voor Apache Spark behandeld. Deze Engelse SDK voor Apache Spark wordt niet rechtstreeks ondersteund door Databricks. Als u feedback wilt geven, vragen wilt stellen en problemen wilt melden, gebruikt u het tabblad problemen in de Engelse SDK voor Apache Spark-opslagplaats in GitHub.

De Engelse SDK voor Apache Spark neemt Engelse instructies en compileert deze in Spark-objecten. Het doel is om Spark gebruiksvriendelijker en toegankelijker te maken, zodat u zich kunt richten op uw inspanningen om inzichten uit uw gegevens te extraheren.

De volgende informatie bevat een voorbeeld waarin wordt beschreven hoe u een Azure Databricks Python-notebook kunt gebruiken om de Engelse SDK voor Apache Spark aan te roepen. In dit voorbeeld wordt een gewone Engelse vraag gebruikt om de Engelse SDK voor Apache Spark te begeleiden bij het uitvoeren van een SQL-query op een tabel vanuit uw Azure Databricks-werkruimte.

Eisen

  • Databricks heeft vastgesteld dat GPT-4 optimaal werkt met de Engelse SDK voor Apache Spark. In dit artikel wordt GPT-4 gebruikt en wordt ervan uitgegaan dat u een OpenAI API-sleutel hebt die is gekoppeld aan een OpenAI-factureringsplan. Als u een OpenAI-factureringsplan wilt starten, meldt u zich aan bij https://platform.openai.com/account/billing/overview, klikt u op Betalingsplan startenen volgt u de instructies op het scherm. Nadat u een OpenAI-factureringsplan hebt gestart, meldt u zich aan bij https://platform.openai.com/account/api-keys en klikt u op Nieuwe geheime sleutel maken.
  • In dit voorbeeld wordt een Azure Databricks Python-notebook gebruikt dat u kunt gebruiken in een Azure Databricks-werkruimte die is verbonden met een Azure Databricks-cluster.

Stap 1: Het Python-pakket voor de Engelse SDK voor Apache Spark installeren

Voer in de eerste cel van het notebook de volgende code uit, die wordt geïnstalleerd op de gekoppelde rekenresource, de nieuwste versie van het Python-pakket voor de Engelse SDK voor Apache Spark:

%pip install pyspark-ai --upgrade

Stap 2: Start de Python-kernel opnieuw om het bijgewerkte pakket te gebruiken

Voer in de tweede cel van het notebook de volgende code uit, waarmee de Python-kernel opnieuw wordt opgestart om het bijgewerkte Python-pakket te gebruiken voor de Engelse SDK voor Apache Spark en de bijgewerkte pakketafhankelijkheden:

dbutils.library.restartPython()

Stap 3: Uw OpenAI API-sleutel instellen

Voer in de derde cel van het notebook de volgende code uit, waarmee een omgevingsvariabele met de naam OPENAI_API_KEY wordt ingesteld op de waarde van uw OpenAI API-sleutel. De Engelse SDK voor Apache Spark gebruikt deze OpenAPI-sleutel om te verifiëren met OpenAI. Vervang <your-openai-api-key> door de waarde van uw OpenAI API-sleutel:

import os

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

Belangrijk

In dit voorbeeld kunt u voor snelheid en gebruiksgemak uw OpenAI API-sleutel in het notebook in code schrijven. In productiescenario's is het een best practice voor beveiliging om uw OpenAI API-sleutel niet in uw notebooks te codeeren. Een andere methode is om deze omgevingsvariabele in te stellen op het gekoppelde cluster. Zie Omgevingsvariabelen.

Stap 4: de LLM instellen en activeren

Voer in de vierde cel van het notebook de volgende code uit. Hiermee stelt u de LLM in die de Engelse SDK voor Apache Spark moet gebruiken en activeert u vervolgens de Engelse SDK voor Apache Spark met het geselecteerde model. In dit voorbeeld gebruikt u GPT-4. De Engelse SDK voor Apache Spark zoekt standaard naar een omgevingsvariabele met de naam OPENAI_API_KEY en gebruikt de waarde voor verificatie met OpenAI voor het gebruik van 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()

Fooi

Als u GPT-4 als standaard-LLM wilt gebruiken, kunt u deze code als volgt vereenvoudigen:

from pyspark_ai import SparkAI

spark_ai = SparkAI()
spark_ai.activate()

Stap 5: Een gegevensframe van een bron maken

Voer in de vijfde cel van het notebook de volgende code uit, waarmee alle gegevens in de samples.nyctaxi.trips tabel uit uw Azure Databricks-werkruimte worden geselecteerd en deze gegevens worden opgeslagen in een DataFrame dat is geoptimaliseerd voor gebruik met de Engelse SDK voor Apache Spark. Dit DataFrame wordt hier weergegeven door de variabele df:

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

Stap 6: Een query uitvoeren op het DataFrame met behulp van een gewone Engelse vraag

Voer in de zesde cel van het notebook de volgende code uit, waarin de Engelse SDK voor Apache Spark wordt gevraagd om de gemiddelde reisafstand af te drukken, naar de dichtstbijzijnde tiende, voor elke dag in januari 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()

De Engelse SDK voor Apache Spark drukt de analyse en het uiteindelijke antwoord als volgt af:

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

De Engelse SDK voor Apache Spark voert het uiteindelijke antwoord uit en geeft de resultaten als volgt weer:

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

Volgende stappen

  • Probeer het DataFrame te maken dat in dit voorbeeld wordt weergegeven door de variabele df, met verschillende gegevens.
  • Gebruik verschillende gewone Engelse vragen voor de functie df.ai.transform.
  • Probeer verschillende GPT-4-modellen te gebruiken. Zie GPT-4.
  • Bekijk aanvullende codevoorbeelden. Zie de volgende aanvullende bronnen.

Aanvullende informatiebronnen