Partilhar via


SDK em inglês para Apache Spark

Nota

Este artigo aborda o SDK em inglês para Apache Spark. Este SDK em inglês para Apache Spark não é suportado diretamente pelo Databricks. Para fornecer comentários, fazer perguntas e relatar problemas, use a guia Problemas no SDK em inglês para repositório Apache Spark no GitHub.

O SDK em inglês para Apache Spark usa instruções em inglês e as compila em objetos do Spark. Seu objetivo é tornar o Spark mais fácil de usar e acessível, o que permite que você concentre seus esforços na extração de insights de seus dados.

As informações a seguir incluem um exemplo que descreve como você pode usar um bloco de anotações Python do Azure Databricks para chamar o SDK em inglês para Apache Spark. Este exemplo usa uma pergunta em inglês simples para orientar o SDK em inglês para Apache Spark para executar uma consulta SQL em uma tabela a partir do seu espaço de trabalho do Azure Databricks.

Requisitos

  • A Databricks descobriu que o GPT-4 funciona perfeitamente com o SDK em inglês para Apache Spark. Este artigo usa GPT-4 e pressupõe que você tenha uma chave de API OpenAI associada a um plano de faturamento OpenAI. Para iniciar um plano de cobrança OpenAI, entre em , clique em https://platform.openai.com/account/billing/overviewIniciar plano de pagamento e siga as instruções na tela. Depois de iniciar um plano de faturamento OpenAI, para gerar uma chave de API OpenAI, entre em e clique em https://platform.openai.com/account/api-keysCriar nova chave secreta.
  • Este exemplo usa um bloco de anotações Python do Azure Databricks que você pode usar em um espaço de trabalho do Azure Databricks conectado a um cluster do Azure Databricks.

Etapa 1: Instalar o pacote Python para o SDK em inglês para Apache Spark

Na primeira célula do notebook, execute o seguinte código, que instala no recurso de computação anexado a versão mais recente do pacote Python para o SDK em inglês para Apache Spark:

%pip install pyspark-ai --upgrade

Etapa 2: Reinicie o kernel Python para usar o pacote atualizado

Na segunda célula do notebook, execute o seguinte código, que reinicia o kernel Python para usar o pacote Python atualizado para o SDK em inglês para Apache Spark e suas dependências de pacote atualizado:

dbutils.library.restartPython()

Etapa 3: Definir sua chave de API OpenAI

Na terceira célula do bloco de anotações, execute o código a seguir, que define uma variável de ambiente nomeada OPENAI_API_KEY para o valor da sua chave de API OpenAI. O SDK em inglês para Apache Spark usa essa chave OpenAPI para autenticar com OpenAI. Substitua <your-openai-api-key> pelo valor da sua chave de API OpenAI:

import os

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

Importante

Neste exemplo, para velocidade e facilidade de uso, você codifica sua chave de API OpenAI no notebook. Em cenários de produção, é uma prática recomendada de segurança não codificar sua chave de API OpenAI em seus notebooks. Uma abordagem alternativa é definir essa variável de ambiente no cluster anexado. Consulte Variáveis de ambiente.

Etapa 4: Definir e ativar o LLM

Na quarta célula do bloco de anotações, execute o código a seguir, que define o LLM que você deseja que o SDK em inglês para Apache Spark use e, em seguida, ativa o SDK em inglês para Apache Spark com o modelo selecionado. Para este exemplo, você usa GPT-4. Por padrão, o SDK em inglês para Apache Spark procura uma variável de ambiente chamada OPENAI_API_KEY e usa seu valor para autenticar com OpenAI para usar 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()

Gorjeta

Para usar GPT-4 como LLM padrão, você pode simplificar esse código da seguinte maneira:

from pyspark_ai import SparkAI

spark_ai = SparkAI()
spark_ai.activate()

Etapa 5: Criar um DataFrame de origem

Na quinta célula do bloco de anotações, execute o código a seguir, que seleciona todos os dados na samples.nyctaxi.trips tabela do seu espaço de trabalho do Azure Databricks e armazena esses dados em um DataFrame otimizado para funcionar com o SDK em inglês para Apache Spark. Este DataFrame é representado aqui pela variável df:

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

Etapa 6: Consultar o DataFrame usando uma pergunta em inglês simples

Na sexta célula do notebook, execute o código a seguir, que pede ao SDK em inglês para Apache Spark para imprimir a distância média da viagem, até o décimo mais próximo, para cada dia durante janeiro de 2016.

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

O SDK em inglês para Apache Spark imprime sua análise e resposta final da seguinte forma:

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

O SDK em inglês para Apache Spark executa sua resposta final e imprime os resultados da seguinte maneira:

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

Próximos passos

  • Tente criar o DataFrame, representado neste exemplo pela variável df, com dados diferentes.
  • Tente usar diferentes perguntas em inglês simples para a df.ai.transform função.
  • Tente usar diferentes modelos GPT-4. Ver GPT-4.
  • Explore exemplos de código adicionais. Consulte os seguintes recursos adicionais.

Recursos adicionais