Engelska SDK för Apache Spark
Kommentar
Den här artikeln beskriver den engelska SDK:t för Apache Spark. Denna engelska SDK för Apache Spark stöds inte direkt av Databricks. Om du vill ge feedback, ställa frågor och rapportera problem använder du fliken Problem i den engelska SDK:t för Apache Spark-lagringsplatsen i GitHub.
Den engelska SDK:t för Apache Spark tar engelska instruktioner och kompilerar dem till Spark-objekt. Målet är att göra Spark mer användarvänligt och tillgängligt, vilket gör att du kan fokusera på att extrahera insikter från dina data.
Följande information innehåller ett exempel som beskriver hur du kan använda en Azure Databricks Python-anteckningsbok för att anropa den engelska SDK:t för Apache Spark. I det här exemplet används en vanlig engelsk fråga för att vägleda den engelska SDK:t för Apache Spark för att köra en SQL-fråga på en tabell från din Azure Databricks-arbetsyta.
Behov
- Databricks har upptäckt att GPT-4 fungerar optimalt med den engelska SDK:t för Apache Spark. Den här artikeln använder GPT-4 och förutsätter att du har en OpenAI API-nyckel som är associerad med en OpenAI-faktureringsplan. Om du vill starta en OpenAI-faktureringsplan loggar du in på , klickar på https://platform.openai.com/account/billing/overviewStarta betalningsplan och följer anvisningarna på skärmen. När du har startat en OpenAI-faktureringsplan loggar du in på och klickar på https://platform.openai.com/account/api-keys Skapa ny hemlig nyckel för att generera en OpenAI API-nyckel.
- I det här exemplet används en Azure Databricks Python-anteckningsbok som du kan använda på en Azure Databricks-arbetsyta som är ansluten till ett Azure Databricks-kluster.
Steg 1: Installera Python-paketet för den engelska SDK:t för Apache Spark
I notebook-filens första cell kör du följande kod, som installeras på den anslutna beräkningsresursen den senaste versionen av Python-paketet för den engelska SDK:t för Apache Spark:
%pip install pyspark-ai --upgrade
Steg 2: Starta om Python-kerneln för att använda det uppdaterade paketet
I notebook-filens andra cell kör du följande kod, som startar om Python-kerneln för att använda det uppdaterade Python-paketet för den engelska SDK:t för Apache Spark och dess uppdaterade paketberoenden:
dbutils.library.restartPython()
Steg 3: Ange din OpenAI API-nyckel
I notebook-filens tredje cell kör du följande kod, som anger en miljövariabel med namnet OPENAI_API_KEY
till värdet för din OpenAI API-nyckel. Den engelska SDK:t för Apache Spark använder den här OpenAPI-nyckeln för att autentisera med OpenAI. Ersätt <your-openai-api-key>
med värdet för din OpenAI API-nyckel:
import os
os.environ['OPENAI_API_KEY'] = '<your-openai-api-key>'
Viktigt!
I det här exemplet hårdkodar du din OpenAI API-nyckel till notebook-filen för snabb och enkel användning. I produktionsscenarier är det en säkerhetsmetod att inte hårdkoda din OpenAI API-nyckel i dina notebook-filer. En alternativ metod är att ange den här miljövariabeln i det anslutna klustret. Se Miljövariabler.
Steg 4: Ange och aktivera LLM
I notebook-filens fjärde cell kör du följande kod, som anger den LLM som du vill att den engelska SDK:t för Apache Spark ska använda och aktiverar sedan den engelska SDK:t för Apache Spark med den valda modellen. I det här exemplet använder du GPT-4. Som standard letar den engelska SDK:t för Apache Spark efter en miljövariabel med namnet OPENAI_API_KEY
och använder dess värde för att autentisera med OpenAI för att använda 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()
Dricks
Om du vill använda GPT-4 som standard-LLM kan du förenkla den här koden på följande sätt:
from pyspark_ai import SparkAI
spark_ai = SparkAI()
spark_ai.activate()
Steg 5: Skapa en källdataram
I notebook-filens femte cell kör du följande kod, som väljer alla data i samples.nyctaxi.trips
tabellen från din Azure Databricks-arbetsyta och lagrar dessa data i en DataFrame som är optimerad för att fungera med den engelska SDK:t för Apache Spark. Den här dataramen representeras här av variabeln df
:
df = spark_ai._spark.sql("SELECT * FROM samples.nyctaxi.trips")
Steg 6: Fråga DataFrame med hjälp av en vanlig engelsk fråga
I anteckningsbokens sjätte cell kör du följande kod, som ber den engelska SDK:n för Apache Spark att skriva ut det genomsnittliga reseavståndet till närmaste tiondel för varje dag under 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()
Den engelska SDK:t för Apache Spark skriver ut sin analys och det slutliga svaret på följande sätt:
> 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.
Den engelska SDK:t för Apache Spark kör sitt slutliga svar och skriver ut resultatet på följande sätt:
+-----------+-----------------+
|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
Nästa steg
- Prova att skapa DataFrame, som representeras i det här exemplet av variabeln
df
, med olika data. - Prova att använda olika vanliga frågor på
df.ai.transform
engelska för funktionen. - Prova att använda olika GPT-4-modeller. Se GPT-4.
- Utforska ytterligare kodexempel. Se följande ytterligare resurser.
Ytterligare resurser
- Den engelska SDK:t för Apache Spark-lagringsplatsen i GitHub
- Dokumentationswebbplatsen för den engelska SDK:t för Apache Spark
- Blogginlägget Introducing English as the New Programming Language for Apache Spark (Introduktion till engelska som nytt programmeringsspråk för Apache Spark)
- Engelska SDK för Apache Spark-meddelande och demonstration under en Keynote för Data + AI Summit från 2023
- Den engelska SDK:n för Apache Spark-sessionen under Data + AI Summit 2023