Dela via


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