Sdílet prostřednictvím


Anglická sada SDK pro Apache Spark

Poznámka:

Tento článek se zabývá anglickou sadou SDK pro Apache Spark. Databricks nepodporuje přímo tuto anglickou sadu SDK pro Apache Spark. Pokud chcete poskytnout zpětnou vazbu, pokládat otázky a nahlásit problémy, použijte kartu Problémy v úložišti Anglická sada SDK pro Apache Spark na GitHubu.

Anglická sada SDK pro Apache Spark přijímá anglické instrukce a kompiluje je do objektů Sparku. Jejím cílem je, aby byl Spark uživatelsky přívětivější a přístupný, což vám umožní zaměřit se na extrakci přehledů z vašich dat.

Následující informace obsahují příklad, který popisuje, jak můžete pomocí poznámkového bloku Pythonu Azure Databricks volat anglickou sadu SDK pro Apache Spark. Tento příklad používá prostý anglický dotaz, který provede anglickou sadu SDK pro Apache Spark ke spuštění dotazu SQL na tabulku z pracovního prostoru Azure Databricks.

Požadavky

  • Databricks zjistil, že GPT-4 funguje optimálně s anglickou sadou SDK pro Apache Spark. Tento článek používá GPT-4 a předpokládá, že máte klíč rozhraní OpenAI API přidružený k fakturačnímu plánu OpenAI. Pokud chcete spustit fakturační plán OpenAI, přihlaste se na https://platform.openai.com/account/billing/overview, klikněte na Začít platební plán a postupujte podle pokynů na obrazovce. Jakmile spustíte fakturační plán OpenAI, vygenerujte klíč rozhraní API OpenAI, přihlaste https://platform.openai.com/account/api-keys se a klikněte na Vytvořit nový tajný klíč.
  • Tento příklad používá poznámkový blok Pythonu Azure Databricks, který můžete použít v pracovním prostoru Azure Databricks, který je připojený ke clusteru Azure Databricks.

Krok 1: Instalace balíčku Pythonu pro anglickou sadu SDK pro Apache Spark

V první buňce poznámkového bloku spusťte následující kód, který nainstaluje na připojený výpočetní prostředek nejnovější verzi balíčku Pythonu pro anglickou sadu SDK pro Apache Spark:

%pip install pyspark-ai --upgrade

Krok 2: Restartováním jádra Pythonu použijte aktualizovaný balíček

V druhé buňce poznámkového bloku spusťte následující kód, který restartuje jádro Pythonu, aby používalo aktualizovaný balíček Pythonu pro anglickou sadu SDK pro Apache Spark a jeho aktualizované závislosti balíčků:

dbutils.library.restartPython()

Krok 3: Nastavení klíče rozhraní API OpenAI

Ve třetí buňce poznámkového bloku spusťte následující kód, který nastaví proměnnou prostředí s názvem OPENAI_API_KEY na hodnotu klíče rozhraní Api OpenAI. Anglická sada SDK pro Apache Spark používá tento klíč OpenAPI k ověření pomocí OpenAI. Nahraďte <your-openai-api-key> hodnotou klíče rozhraní API OpenAI:

import os

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

Důležité

V tomto příkladu pro rychlé a snadné použití pevně zakódujete klíč rozhraní Api OpenAI do poznámkového bloku. Vprodukčních Jedním z alternativních přístupů je nastavení této proměnné prostředí v připojeném clusteru. Viz proměnné prostředí.

Krok 4: Nastavení a aktivace LLM

Ve čtvrté buňce poznámkového bloku spusťte následující kód, který nastaví LLM, který má používat anglická sada SDK pro Apache Spark, a pak aktivuje anglickou sadu SDK pro Apache Spark s vybraným modelem. V tomto příkladu použijete GPT-4. Anglická sada SDK pro Apache Spark ve výchozím nastavení hledá proměnnou prostředí s názvem OPENAI_API_KEY a používá její hodnotu k ověření pomocí OpenAI k použití 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()

Tip

Pokud chcete jako výchozí LLM použít GPT-4, můžete tento kód zjednodušit následujícím způsobem:

from pyspark_ai import SparkAI

spark_ai = SparkAI()
spark_ai.activate()

Krok 5: Vytvoření zdrojového datového rámce

V páté buňce poznámkového bloku spusťte následující kód, který vybere všechna data v samples.nyctaxi.trips tabulce z pracovního prostoru Azure Databricks a uloží tato data do datového rámce, který je optimalizovaný pro práci s anglickou sadou SDK pro Apache Spark. Tento datový rámec je zde reprezentován proměnnou df:

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

Krok 6: Dotazování datového rámce pomocí jednoduché anglické otázky

V šesté buňce poznámkového bloku spusťte následující kód, který požádá anglickou sadu SDK pro Apache Spark, aby pro každý den v lednu 2016 vytiskla průměrnou vzdálenost jízdy na nejbližší desátou.

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

Anglická sada SDK pro Apache Spark vytiskne analýzu a konečnou odpověď následujícím způsobem:

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

Anglická sada SDK pro Apache Spark spustí konečnou odpověď a výsledky vytiskne následujícím způsobem:

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

Další kroky

  • Zkuste vytvořit datový rámec reprezentovaný v tomto příkladu proměnnou dfs různými daty.
  • Zkuste pro df.ai.transform funkci použít jiné jednoduché anglické otázky.
  • Zkuste použít různé modely GPT-4. Viz GPT-4.
  • Prozkoumejte další příklady kódu. Podívejte se na následující další zdroje informací.

Další materiály