SDK en inglés para Apache Spark
Nota:
En este artículo se describe el SDK en inglés para Apache Spark. Databricks no admite directamente este SDK en inglés para Apache Spark. Para proporcionar comentarios, formular preguntas e informar de problemas, use la pestaña Problemas en el repositorio del SDK en Inglés para Apache Spark en GitHub.
El SDK en inglés para Apache Spark toma instrucciones en inglés y los compila en objetos Spark. Su objetivo es hacer que Spark sea más fácil de usar y accesible, lo que le permite centrar sus esfuerzos en extraer información de los datos.
La siguiente información incluye un ejemplo que describe cómo puede usar un cuaderno de Python de Azure Databricks para llamar al SDK en inglés para Apache Spark. En este ejemplo se usa una pregunta en inglés sin formato para guiar el SDK en Inglés para Apache Spark para ejecutar una consulta SQL en una tabla desde el área de trabajo de Azure Databricks.
Requisitos
- Databricks ha encontrado que GPT-4 funciona de forma óptima con el SDK en inglés para Apache Spark. En este artículo se usa GPT-4 y se supone que tiene una clave de API de OpenAI asociada a un plan de facturación de OpenAI. Para iniciar un plan de facturación de OpenAI, inicie sesión en https://platform.openai.com/account/billing/overview, haga clic en Iniciar plan de pago y siga las instrucciones en pantalla. Después de iniciar un plan de facturación de OpenAI, para generar una clave de API de OpenAI, inicie sesión en https://platform.openai.com/account/api-keys y haga clic en Crear nueva clave secreta.
- En este ejemplo se usa un cuaderno de Python de Azure Databricks que puede usar en un área de trabajo de Azure Databricks que esté conectada a un clúster de Azure Databricks.
Paso 1: Instalación del paquete de Python para el SDK en inglés para Apache Spark
En la primera celda del cuaderno, ejecute el código siguiente, que instala en el recurso de proceso asociado la versión más reciente del paquete de Python para el SDK en Inglés para Apache Spark:
%pip install pyspark-ai --upgrade
Paso 2: Reinicio del kernel de Python para usar el paquete actualizado
En la segunda celda del cuaderno, ejecute el código siguiente, que reinicia el kernel de Python para usar el paquete de Python actualizado para el SDK en Inglés para Apache Spark y sus dependencias de paquete actualizadas:
dbutils.library.restartPython()
Paso 3: Establecimiento de la clave de API de OpenAI
En la tercera celda del cuaderno, ejecute el código siguiente, que establece una variable de entorno denominada OPENAI_API_KEY
en el valor de la clave de API de OpenAI. El SDK en inglés para Apache Spark usa esta clave de OpenAPI para autenticarse con OpenAI. Reemplace <your-openai-api-key>
por el valor de la clave de API de OpenAI:
import os
os.environ['OPENAI_API_KEY'] = '<your-openai-api-key>'
Importante
En este ejemplo, para acelerar y facilitar el uso, codifique de forma rígida la clave de API de OpenAI en el cuaderno. En escenarios de producción, es un procedimiento recomendado de seguridad que no codifique de forma rígida la clave de API de OpenAI en los cuadernos. Un enfoque alternativo consiste en establecer esta variable de entorno en el clúster asociado. Consulte Variables de entorno.
Paso 4: Establecimiento y activación del LLM
En la cuarta celda del cuaderno, ejecute el código siguiente, que establece el LLM que desea que use el SDK en inglés para Apache Spark y, a continuación, active el SDK en inglés para Apache Spark con el modelo seleccionado. En este ejemplo, se usa GPT-4. De forma predeterminada, el SDK en inglés para Apache Spark busca una variable de entorno denominada OPENAI_API_KEY
y usa su valor para autenticarse con 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()
Sugerencia
Para usar GPT-4 como LLM predeterminado, puede simplificar este código de la siguiente manera:
from pyspark_ai import SparkAI
spark_ai = SparkAI()
spark_ai.activate()
Paso 5: Crear un DataFrame de origen
En la quinta celda del cuaderno, ejecute el código siguiente, que selecciona todos los datos de la tabla samples.nyctaxi.trips
del área de trabajo de Azure Databricks y almacena estos datos en un DataFrame optimizado para trabajar con el SDK en Inglés para Apache Spark. Esta trama de datos se representa aquí mediante la variable df
:
df = spark_ai._spark.sql("SELECT * FROM samples.nyctaxi.trips")
Paso 6: Consultar el DataFrame mediante una pregunta en inglés sin formato
En la sexta celda del cuaderno’, ejecute el código siguiente, que pide al SDK en Inglés para Apache Spark que imprima la distancia media de viaje, a la décima más cercana, por cada día durante enero 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()
El SDK en inglés para Apache Spark imprime su análisis y la respuesta final de la siguiente manera:
> 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.
El SDK en inglés para Apache Spark ejecuta su respuesta final e imprime los resultados de la siguiente manera:
+-----------+-----------------+
|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
Pasos siguientes
- Pruebe a crear el DataFrame, representado en este ejemplo por la variable
df
, con datos diferentes. - Pruebe a usar diferentes preguntas en inglés sin formato para la función
df.ai.transform
. - Pruebe a usar diferentes modelos GPT-4. Consulte GPT-4.
- Explore ejemplos de código adicionales. Consulte los siguientes recursos adicionales.
Recursos adicionales
- El repositorio SDK en inglés para Apache Spark en GitHub
- El sitio web de documentación del SDK en inglés para Apache Spark
- La entrada de blog Introducción al inglés como nuevo lenguaje de programación para Apache Spark
- El anuncio y la demostración del SDK en Inglés para Apache Spark durante una presentación de Data + AI Summit de 2023
- La sesión de SDK en inglés para Apache Spark durante Data + AI Summit 2023