概要
English SDK for Apache Spark を Azure OpenAI Services により Databricks 上で実行する方法を共有します。
English SDK for Apache Spark とは、自然言語によりデータ操作を実施できるライブラリです。詳細については、Introducing English as the New Programming Language for Apache Spark | Databricks Blogに書かれています。
引用元:Introducing English as the New Programming Language for Apache Spark | Databricks Blog
実行結果が出力されるだけでなく、実行したコードが表示されるため、妥当性を確認することができます。
実行手順
1. English SDK for Apache Spark(pyspark-ai
)のインストール
%pip install pyspark-ai -q
2. API の環境設定を変数にセット
import os
import openai
# `Azure`固定
openai.api_type = "azure"
# Azure Open AI のエンドポイント
openai.api_base = "https://manabian-XXXXXXX.azure.com/"
# Azure Docs 記載の項目
openai.api_version = "2023-05-15"
# Azure Open AI のキー
os.environ["OPENAI_API_KEY"] = "882257f4cfaXXXXXXXXXXXXXXXXXXXXX"
# デプロイ名
deployment_id = "gpth_3"
# デプロイしたモデル名
model_name = "gpt-35-turbo"
注記 1 Azure Docs 記載の項目 については、下記を参考にしました。
引用元:クイック スタート - Azure OpenAI Service で ChatGPT と GPT-4 の使用を開始する - Azure OpenAI Service | Microsoft Learn
3. English SDK for Apache Spark(pyspark-ai
)の有効化
from langchain.chat_models import ChatOpenAI
from pyspark_ai import SparkAI
llm = ChatOpenAI(
deployment_id=deployment_id,
model_name=model_name,
temperature=0,
)
spark_ai = SparkAI(llm=llm, verbose=True)
spark_ai.activate()
4. データの読み込み
tpch_lineitem__spark_df = spark.read.table("samples.tpch.lineitem")
tpch_lineitem__spark_ai_df = spark_ai.transform_df(tpch_lineitem__spark_df, "get all data")
tpch_lineitem__spark_ai_df.display()
5. English SDK for Apache Spark によるデータフレームの説明
tpch_lineitem__spark_ai_df.ai.explain()
In summary, this dataframe is retrieving all columns from the `lineitem` table in the `tpch` database of the `samples` catalog.
6. English SDK for Apache Spark によるデータフレームの操作
transfomed__spark_ai_df = tpch_lineitem__spark_ai_df.ai.transform(
"`l_suppkey`別に、`l_quantity`と`l_extendedprice`を加算した値を`sales_amount`列として集計の上位10件。l_suppkey`列を文字型に変換。"
)
7. English SDK for Apache Spark によるデータの可視化
transfomed__spark_ai_df.ai.plot("縦棒グラフ")