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, klást otázky a hlá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á jednoduchou otázku v angličtině, aby usměrnil anglickou sadu SDK pro Apache Spark k provedení dotazu SQL na table z vašeho 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 zahájit fakturační plán OpenAI, přihlaste se na https://platform.openai.com/account/billing/overview, klikněte na Zahájit platební plána postupujte podle pokynů na obrazovce. Po spuštění fakturačního plánu OpenAI generate se přihlaste na https://platform.openai.com/account/api-keys 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: Set váš OpenAI API klíč

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. V produkčních prostředích je nejlepší praxí zabezpečení nezakódovat váš OpenAI API klíč přímo do vašich poznámkových bloků. Jedním z alternativních přístupů je set proměnnou prostředí v připojeném clusteru. Viz proměnné prostředí.

Krok 4: Set a aktivujte 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. Ve výchozím nastavení anglická verze SDK pro Apache Spark vyhledává proměnnou prostředí s názvem OPENAI_API_KEY a používá její hodnotu k autentizaci u OpenAI pro 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()

Spropitné

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.tripstable 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 funkci df.ai.transform 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ší zdroje informací