SDK em inglês para o Apache Spark
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:
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:
import os
os.environ['OPENAI_API_KEY'] = '<your-openai-api-key>'
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:
from langchain.chat_models import ChatOpenAI
from pyspark_ai import SparkAI
chatOpenAI = ChatOpenAI(model = 'gpt-4')
spark_ai = SparkAI(llm = chatOpenAI)
spark_ai.activate()
Para usar o GPT-4 como default LLM, o senhor pode simplificar esse código da seguinte forma:
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
:
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.
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
- O repositório do SDK em inglês para o Apache Spark no GitHub
- O site de documentação do SDK em inglês para o Apache Spark
- A postagem no blog Introducing English as the New Programming Language for Apache Spark
- Anúncio e demonstração do SDK em inglês para o Apache Spark durante uma palestra do Data + AI Summit de 2023
- Sessão do SDK em inglês para o Apache Spark durante o Data + AI Summit 2023