我在Databricks上尝试使用Azure OpenAI服务将Apache Spark的英文SDK运行起来

简述

我将与您分享如何在Databricks上通过Azure OpenAI服务运行Apache Spark的英文SDK的方法。

Apache Spark 的英文软件开发工具包(SDK)是一个能够通过自然语言进行数据操作的库。有关更多详细信息,请参阅Databricks博客上的《引入英语作为Apache Spark的新编程语言》一文。

image.png

引用来源:Databricks博客《将英语引入作为Apache Spark的新编程语言》

不仅会输出执行结果,还会显示执行的代码,以便确认其有效性。

image.png

执行步骤

安装用于Apache Spark的英文软件开发工具包(pyspark-ai)。

%pip install pyspark-ai -q
image.png

将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

关于Azure Docs中所记录的注释1条目,我参考了下面的内容。

image.png

引用来源:Azure OpenAI 服务的“快速入门:使用 ChatGPT 和 GPT-4” – Azure OpenAI 服务 | Microsoft Learn

激活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. 通过 Apache Spark 的英文软件开发工具包(SDK),对数据帧进行说明。

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. 使用英文SDK来操作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. 利用 Apache Spark 的英文 SDK 进行数据可视化

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