1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

English SDK for Apache Spark を Azure OpenAI Services により Databricks 上で動かしてみた

Last updated at Posted at 2023-07-12

概要

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に書かれています。

image.png

引用元:Introducing English as the New Programming Language for Apache Spark | Databricks Blog

実行結果が出力されるだけでなく、実行したコードが表示されるため、妥当性を確認することができます。

image.png

実行手順

1. English SDK for Apache Spark(pyspark-ai)のインストール

%pip install pyspark-ai -q

image.png

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"

image.png

注記 1 Azure Docs 記載の項目 については、下記を参考にしました。

image.png

引用元:クイック スタート - 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()

image.png

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

image.png

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.

image.png

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`列を文字型に変換。"
)

image.png

7. English SDK for Apache Spark によるデータの可視化

transfomed__spark_ai_df.ai.plot("縦棒グラフ")

image.png

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?