Udostępnij za pośrednictwem


Angielski zestaw SDK dla platformy Apache Spark

Uwaga

W tym artykule opisano angielski zestaw SDK dla platformy Apache Spark. Ten angielski zestaw SDK dla platformy Apache Spark nie jest obsługiwany bezpośrednio przez usługę Databricks. Aby przekazać opinię, zadawać pytania i zgłaszać problemy, użyj karty Problemy w repozytorium Angielski zestaw SDK dla platformy Apache Spark w usłudze GitHub.

Angielski zestaw SDK dla platformy Apache Spark wykonuje instrukcje w języku angielskim i kompiluje je w obiektach platformy Spark. Jego celem jest zwiększenie przyjazności i dostępności platformy Spark, co pozwala skupić się na wyodrębnieniu szczegółowych informacji z danych.

Poniższe informacje zawierają przykład opisujący sposób użycia notesu języka Python usługi Azure Databricks do wywołania angielskiego zestawu SDK dla platformy Apache Spark. W tym przykładzie użyto zwykłego pytania w języku angielskim, aby pokierować angielskim zestawem SDK dla platformy Apache Spark w celu uruchomienia zapytania SQL w tabeli z obszaru roboczego usługi Azure Databricks.

Wymagania

  • Usługa Databricks odkryła, że biblioteka GPT-4 działa optymalnie z angielskim zestawem SDK dla platformy Apache Spark. W tym artykule użyto biblioteki GPT-4 i przyjęto założenie, że masz klucz interfejsu API OpenAI skojarzony z planem rozliczeniowym interfejsu OpenAI. Aby rozpocząć plan rozliczeniowy openAI, zaloguj się pod adresem https://platform.openai.com/account/billing/overview, kliknij pozycję Rozpocznij plan płatności i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie. Po uruchomieniu planu rozliczeniowego interfejsu OpenAI w celu wygenerowania klucza interfejsu API openAI zaloguj się na https://platform.openai.com/account/api-keys stronie i kliknij pozycję Utwórz nowy klucz tajny.
  • W tym przykładzie użyto notesu języka Python usługi Azure Databricks, którego można użyć w obszarze roboczym usługi Azure Databricks połączonym z klastrem usługi Azure Databricks.

Krok 1. Instalowanie pakietu języka Python dla angielskiego zestawu SDK dla platformy Apache Spark

W pierwszej komórce notesu uruchom następujący kod, który instaluje w dołączonym zasobie obliczeniowym najnowszą wersję pakietu języka Python dla angielskiego zestawu SDK dla platformy Apache Spark:

%pip install pyspark-ai --upgrade

Krok 2. Uruchom ponownie jądro języka Python, aby użyć zaktualizowanego pakietu

W drugiej komórce notesu uruchom następujący kod, który ponownie uruchamia jądro języka Python, aby użyć zaktualizowanego pakietu języka Python dla zestawu SDK języka Angielskiego dla platformy Apache Spark i zaktualizowanych zależności pakietu:

dbutils.library.restartPython()

Krok 3. Ustawianie klucza interfejsu API interfejsu OpenAI

W trzeciej komórce notesu uruchom następujący kod, który ustawia zmienną środowiskową o nazwie OPENAI_API_KEY na wartość klucza interfejsu API openAI. Angielski zestaw SDK dla platformy Apache Spark używa tego klucza OpenAPI do uwierzytelniania za pomocą interfejsu OpenAI. Zastąp <your-openai-api-key> ciąg wartością klucza interfejsu API openAI:

import os

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

Ważne

W tym przykładzie w celu szybkiego i łatwego użycia kodujesz klucz interfejsu API OpenAI do notesu. W scenariuszach produkcyjnych najlepszym rozwiązaniem jest, aby nie kodować klucza interfejsu API OpenAI w notesach. Jedną z alternatywnych metod jest ustawienie tej zmiennej środowiskowej w dołączonym klastrze. Zobacz Zmienne środowiskowe.

Krok 4. Ustawianie i aktywowanie usługi LLM

W czwartej komórce notesu uruchom następujący kod, który ustawia język LLM, który ma być używany przez angielski zestaw SDK dla platformy Apache Spark, a następnie aktywuje angielski zestaw SDK dla platformy Apache Spark przy użyciu wybranego modelu. W tym przykładzie użyto biblioteki GPT-4. Domyślnie angielski zestaw SDK dla platformy Apache Spark szuka zmiennej środowiskowej o nazwie OPENAI_API_KEY i używa jej wartości do uwierzytelniania za pomocą interfejsu OpenAI do używania biblioteki 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()

Napiwek

Aby użyć biblioteki GPT-4 jako domyślnej funkcji LLM, możesz uprościć ten kod w następujący sposób:

from pyspark_ai import SparkAI

spark_ai = SparkAI()
spark_ai.activate()

Krok 5. Tworzenie źródłowej ramki danych

W piątej komórce notesu uruchom następujący kod, który wybiera wszystkie dane w samples.nyctaxi.trips tabeli z obszaru roboczego usługi Azure Databricks i przechowuje te dane w ramce danych zoptymalizowanej pod kątem pracy z angielskim zestawem SDK dla platformy Apache Spark. Ta ramka danych jest reprezentowana tutaj przez zmienną df:

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

Krok 6. Wykonywanie zapytań względem ramki danych przy użyciu zwykłego pytania w języku angielskim

W szóstej komórce notesu uruchom następujący kod, który prosi angielski zestaw SDK platformy Apache Spark o wydrukowanie średniej odległości podróży do najbliższej dziesiątej dla każdego dnia w styczniu 2016 roku.

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()

Zestaw SDK języka angielskiego dla platformy Apache Spark wyświetla swoją analizę i ostateczną odpowiedź w następujący sposób:

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

Zestaw SDK języka angielskiego dla platformy Apache Spark uruchamia ostateczną odpowiedź i wyświetla wyniki w następujący sposób:

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

Następne kroki

  • Spróbuj utworzyć ramkę danych reprezentowaną w tym przykładzie przez zmienną df, z różnymi danymi.
  • Spróbuj użyć różnych zwykłych pytań w języku angielskim dla df.ai.transform funkcji.
  • Spróbuj użyć różnych modeli GPT-4. Zobacz GPT-4.
  • Zapoznaj się z dodatkowymi przykładami kodu. Zobacz następujące dodatkowe zasoby.

Dodatkowe zasoby