Englisches SDK für Apache Spark
Hinweis
In diesem Artikel wird das englische SDK für Apache Spark behandelt. Dieses englische SDK für Apache Spark wird nicht direkt von Databricks unterstützt. Um Feedback zu geben, Fragen zu stellen und Probleme zu melden, verwenden Sie die Registerkarte Issues im englischen SDK für Apache Spark-Repository in GitHub.
Das englische SDK für Apache Spark nimmt englische Anweisungen und kompiliert sie in Spark-Objekten. Ziel ist es, Spark benutzerfreundlicher und barrierefreier zu machen, nutzerfreundlicher zu machen, sodass Sie sich darauf konzentrieren können, Erkenntnisse aus Ihren Daten zu extrahieren.
Die folgenden Informationen enthalten ein Beispiel, das beschreibt, wie Sie ein Azure Databricks Python-Notebook verwenden können, um das englische SDK für Apache Spark aufzurufen. In diesem Beispiel wird eine einfache englische Frage verwendet, um das englische SDK für Apache Spark anzuleiten, eine SQL-Abfrage in einer Tabelle aus Ihrem Azure Databricks-Arbeitsbereich auszuführen.
Anforderungen
- Databricks hat festgestellt, dass GPT-4 optimal mit dem englischen SDK für Apache Spark funktioniert. Dieser Artikel verwendet GPT-4 und geht davon aus, dass Sie über einen OpenAI-API-Schlüssel verfügen, der einem OpenAI-Abrechnungsplan zugeordnet ist. Um einen OpenAI-Abrechnungsplan zu starten, melden Sie sich bei https://platform.openai.com/account/billing/overview an, klicken Sie auf Zahlungsplan starten, und folgen Sie den Anweisungen auf dem Bildschirm. Nachdem Sie einen OpenAI-Abrechnungsplan gestartet haben, um einen OpenAI-API-Schlüssel zu generieren, melden Sie sich bei https://platform.openai.com/account/api-keys an, und klicken Sie auf Neuen geheimen Schlüssel erstellen.
- In diesem Beispiel wird ein Azure Databricks Python-Notebook verwendet, das Sie in einem Azure Databricks-Arbeitsbereich verwenden können, der mit einem Azure Databricks-Cluster verbunden ist.
Schritt 1: Installieren des Python-Pakets für das englische SDK für Apache Spark
Führen Sie in der ersten Zelle des Notebooks den folgenden Code aus, der auf der angefügten Computeressource die neueste Version des Python-Pakets für das englische SDK für Apache Spark installiert:
%pip install pyspark-ai --upgrade
Schritt 2: Neustarten des Python-Kernels, um das aktualisierte Paket zu verwenden
Führen Sie in der zweiten Zelle des Notebooks den folgenden Code aus, der den Python-Kernel neu startet, um das aktualisierte Python-Paket für das englische SDK für Apache Spark und seine aktualisierten Paketabhängigkeiten zu verwenden:
dbutils.library.restartPython()
Schritt 3: Festlegen des OpenAI-API-Schlüssels
Führen Sie in der dritten Zelle des Notebooks den folgenden Code aus, der eine Umgebungsvariable namens OPENAI_API_KEY
auf den Wert Ihres OpenAI-API-Schlüssels festlegt. Das englische SDK für Apache Spark verwendet diesen OpenAPI-Schlüssel, um sich bei OpenAI zu authentifizieren. Ersetzen Sie <your-openai-api-key>
durch den Wert Ihres OpenAI-API-Schlüssels:
import os
os.environ['OPENAI_API_KEY'] = '<your-openai-api-key>'
Wichtig
In diesem Beispiel hartcodieren Sie Ihren OpenAI-API-Schlüssel Gründen der Geschwindigkeit und Benutzerfreundlichkeit in das Notebook. In Produktionsszenarien ist es eine bewährte Methode, Ihren OpenAI-API-Schlüssel nicht hart in Ihre Notebooks zu codieren. Ein alternativer Ansatz besteht darin, diese Umgebungsvariable für den angefügten Cluster festzulegen. Weitere Informationen finden Sie unter Umgebungsvariablen.
Schritt 4: Festlegen und Aktivieren der LLM
Führen Sie in der vierten Zelle des Notebooks den folgenden Code aus, der die LLM festlegt, die das englische SDK für Apache Spark verwenden soll, und dann das englische SDK für Apache Spark mit dem ausgewählten Modell aktiviert. In diesem Beispiel verwenden Sie GPT-4. Standardmäßig sucht das englische SDK für Apache Spark nach einer Umgebungsvariable namens OPENAI_API_KEY
und verwendet den Wert für die Authentifizierung bei OpenAI, um GPT-4 zu verwenden:
from langchain.chat_models import ChatOpenAI
from pyspark_ai import SparkAI
chatOpenAI = ChatOpenAI(model = 'gpt-4')
spark_ai = SparkAI(llm = chatOpenAI)
spark_ai.activate()
Tipp
Um GPT-4 als Standard-LLM zu verwenden, können Sie diesen Code wie folgt vereinfachen:
from pyspark_ai import SparkAI
spark_ai = SparkAI()
spark_ai.activate()
Schritt 5: Erstellen eines Quelldataframes
Führen Sie in der fünften Zelle des Notebooks den folgenden Code aus, der alle Daten in der samples.nyctaxi.trips
-Tabelle aus Ihrem Azure Databricks-Arbeitsbereich auswählt und diese Daten in einem DataFrame speichert, der für die Arbeit mit dem englischen SDK für Apache Spark optimiert ist. Dieser Dataframe wird hier durch die Variable df
dargestellt:
df = spark_ai._spark.sql("SELECT * FROM samples.nyctaxi.trips")
Schritt 6: Abfragen des Dataframes mithilfe einer einfachen englischen Frage
Führen Sie in der sechsten Zelle des Notebooks den folgenden Code aus, der das englische SDK für Apache Spark auffordern soll, die durchschnittliche Reisedistanz bis zum nächsten Zehnten für jeden Tag im Januar 2016 zu drucken.
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()
Das englische SDK für Apache Spark druckt seine Analyse und endgültige Antwort wie folgt:
> 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.
Das englische SDK für Apache Spark führt seine endgültige Antwort aus und druckt die Ergebnisse wie folgt:
+-----------+-----------------+
|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ächste Schritte
- Versuchen Sie, den Dataframe zu erstellen, der in diesem Beispiel durch die Variable
df
dargestellt wird, mit unterschiedlichen Daten. - Versuchen Sie, verschiedene einfache englische Fragen für die
df.ai.transform
-Funktion zu verwenden. - Versuchen Sie es mit unterschiedlichen GPT-4-Modellen. Siehe GPT-4.
- Sehen Sie sich weitere Codebeispiele an. Siehe die folgenden zusätzlichen Ressourcen.
Zusätzliche Ressourcen
- Das Repository Englisches SDK für Apache Spark in GitHub
- Die Dokumentationswebsite für das Englische SDK für Apache Spark
- Der Blogbeitrag Einführung in Englisch als neue Programmiersprache für Apache Spark
- Das englische SDK für Apache Spark: Ankündigung und Demonstration während einer Data + AI Summit Keynote ab 2023
- Sitzung zum Englischen SDK für Apache Spark während des Data + AI Summit 2023