Pular para o conteúdo principal

SDK em inglês para o Apache Spark

nota

Este artigo aborda o inglês SDK para Apache Spark. Este SDK em inglês para o Apache Spark não é suportado diretamente pela Databricks. Para fornecer feedback, fazer perguntas e relatar problemas, use o Issues tab em inglês SDK para o repositório Apache Spark em GitHub.

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

As informações a seguir incluem um exemplo que descreve como o senhor pode usar um notebook Databricks Python para chamar o SDK em inglês para Apache Spark. Este exemplo usa uma pergunta em inglês simples para orientar o inglês SDK para Apache Spark a executar uma consulta SQL em uma tabela do seu Databricks workspace.

Requisitos

  • A Databricks descobriu que o GPT-4 funciona de maneira ideal com o SDK em inglês do Apache Spark. Este artigo usa o GPT-4 e pressupõe que o senhor tenha um OpenAI API key associado a um plano de cobrança do OpenAI. Para começar um plano de cobrança da OpenAI, faça login em https://platform.openai.com/account/billing/overview, clique em começar plano de pagamento e siga as instruções na tela. Depois que o senhor começar um plano de cobrança do OpenAI, para gerar um OpenAI API key, faça login em https://platform.openai.com/account/api-keys e clique em Create new secret key (Criar nova chave secreta ).
  • Este exemplo usa um Notebook Databricks Python que o senhor pode usar em um Databricks workspace que está conectado a um cluster Databricks.

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

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

%pip install pyspark-ai --upgrade

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

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

Python
dbutils.library.restartPython()

Etapa 3: Defina seu OpenAI API key

Na terceira célula do Notebook, execute o código a seguir, que define uma variável de ambiente chamada OPENAI_API_KEY para o valor de seu OpenAI API key. O site em inglês SDK para Apache Spark usa esta OpenAPI key para se autenticar com a OpenAI. Substitua <your-openai-api-key> pelo valor de seu OpenAI API key:

Python
import os

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

Neste exemplo, para agilizar e facilitar o uso, o senhor codifica o OpenAI API key no Notebook. Em cenários de produção, é uma prática recomendada de segurança não codificar o OpenAI API key em seu Notebook. Uma abordagem alternativa é definir essa variável de ambiente no clustering anexado. Ver variável de ambiente.

Etapa 4: Definir e ativar o LLM

Na quarta célula do Notebook, execute o código a seguir, que define o LLM que o senhor deseja que o inglês SDK para Apache Spark use e, em seguida, ativa o inglês SDK para Apache Spark com o modelo selecionado. Neste exemplo, você usa o GPT-4. Por default, o inglês SDK para Apache Spark procura uma variável de ambiente chamada OPENAI_API_KEY e usa seu valor para autenticar com o OpenAI para usar o GPT-4:

Python
from langchain.chat_models import ChatOpenAI
from pyspark_ai import SparkAI

chatOpenAI = ChatOpenAI(model = 'gpt-4')

spark_ai = SparkAI(llm = chatOpenAI)
spark_ai.activate()
dica

Para usar o GPT-4 como default LLM, o senhor pode simplificar esse código da seguinte forma:

Python
from pyspark_ai import SparkAI

spark_ai = SparkAI()
spark_ai.activate()

Etapa 5: Criar um DataFrame de origem

Na quinta célula do Notebook, execute o código a seguir, que seleciona todos os dados da tabela samples.nyctaxi.trips de seu Databricks workspace e armazena esses dados em um DataFrame otimizado para funcionar com o inglês SDK para Apache Spark. Esse DataFrame é representado aqui pela variável df:

Python
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 solicita ao site em inglês SDK for Apache Spark que imprima a distância média de viagem, até o décimo mais próximo, para cada dia de janeiro de 2016.

Python
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 do 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 inglês SDK for Apache Spark executa sua resposta final e imprime os resultados da seguinte forma:

+-----------+-----------------+
|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óximas etapas

  • Tente criar o DataFrame, representado neste exemplo pela variável df, com dados diferentes.
  • Tente usar diferentes perguntas simples em inglês para a função df.ai.transform.
  • Tente usar diferentes modelos de GPT-4. Veja GPT-4.
  • Explore outros exemplos de código. Veja o recurso adicional a seguir.

Recurso adicional