SDK em inglês para Apache Spark
Observação
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 feedback, fazer perguntas e relatar problemas, use a Problemas tab no repositório do SDK em inglês para Apache Spark no GitHub.
O SDK em inglês para Apache Spark pega instruções em inglês e as compila em objetos Spark. Seu objetivo é tornar o Spark mais amigável e acessível, o que permite que você concentre seus esforços na extração de entendimento de seus dados.
As informações a seguir incluem um exemplo que descreve como você pode usar um Databricks Python Notebook para chamar o SDK em inglês para Apache Spark. Este exemplo usa uma pergunta simples em inglês para orientar o SDK em inglês do Apache Spark para executar uma query SQL em uma tabela do seu workspace do Databricks.
Requisitos
A Databricks descobriu que o GPT-4 funciona de maneira ideal com o SDK inglês para Apache Spark. Este artigo usa GPT-4 e pressupõe que você tenha uma key de API OpenAI associada a um plano de cobrança OpenAI. Para iniciar um plano de faturamento 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 de iniciar um plano de faturamento OpenAI, para gerar uma key de API OpenAI, faça login em https://platform.openai.com/account/api-keys e clique em Criar nova keysecreta.
Este exemplo usa um Notebook Python do Databricks que você pode usar em um workspace do Databricks conectado a clusters do Databricks.
o passo 1: Instale o pacote Python para o SDK em inglês para Apache Spark
Na primeira célula do Notebook , execute o código a seguir, que instala no recurso compute anexado a versão mais recente do pacote Python para o SDK em inglês para Apache Spark:
%pip install pyspark-ai --upgrade
o passo 2: Reinicie o kernel 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 SDK em inglês para Apache Spark e suas dependências de pacote atualizadas:
dbutils.library.restartPython()
o passo 3: Defina sua chave de API OpenAI
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 da sua key de API OpenAI. O SDK em inglês para Apache Spark usa esta key OpenAPI para autenticar com OpenAI. Substitua <your-openai-api-key>
pelo valor da sua key 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 key de API OpenAI no Notebook. Em cenários de produção, é uma prática recomendada de segurança não codificar sua key de API OpenAI em seu Notebook. Uma abordagem alternativa é definir essa variável de ambiente nos clusters anexados. Veja variável de ambiente.
o passo 4: Definir e ativar o LLM
Na quarta célula do Notebook , 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. Neste exemplo, você usa GPT-4. Por default, 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()
Dica
Para usar GPT-4 como LLM default , você pode simplificar este código da seguinte maneira:
from pyspark_ai import SparkAI
spark_ai = SparkAI()
spark_ai.activate()
o passo 5: Crie um DataFrame de origem
Na quinta célula do Notebook , execute o código a seguir, que seleciona todos os dados na tabela samples.nyctaxi.trips
do seu workspace do 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")
o passo 6: Consulte o DataFrame usando uma pergunta simples em inglês
Na sexta célula do Notebook , execute o código a seguir, que solicita ao SDK em inglês para Apache Spark que imprima a distância média da viagem, com aproximação ao décimo, para cada dia de 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 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
Experimente criar o DataFrame, representado neste exemplo pela variável
df
, com dados diferentes.Tente usar perguntas diferentes em inglês simples para a função
df.ai.transform
.Tente usar diferentes modelos GPT-4. Consulte GPT-4.
Explore exemplos de código adicionais. Veja o seguinte recurso adicional.
Recursos adicionais
O repositório SDK em inglês para Apache Spark no GitHub
Site de documentação do SDK em inglês para Apache Spark
The postagem no blogs Apresentando o inglês como a nova linguagem de programação para Apache Spark
Anúncio e demonstração do SDK em inglês para Apache Spark durante uma palestra do Data + IA Summit de 2023
A sessão do SDK em inglês para Apache Spark durante o Data + IA Summit 2023