Bagikan melalui


SDK Bahasa Inggris untuk Apache Spark

Catatan

Artikel ini membahas SDK bahasa Inggris untuk Apache Spark. SDK bahasa Inggris untuk Apache Spark ini tidak didukung langsung oleh Databricks. Untuk memberikan umpan balik, mengajukan pertanyaan, dan melaporkan masalah, gunakan tab Masalah di repositori SDK bahasa Inggris untuk Apache Spark di GitHub.

SDK bahasa Inggris untuk Apache Spark mengambil instruksi bahasa Inggris dan mengkompilasinya ke dalam objek Spark. Tujuannya adalah untuk membuat Spark lebih ramah pengguna dan dapat diakses, yang memungkinkan Anda memfokuskan upaya Anda untuk mengekstrak wawasan dari data Anda.

Informasi berikut menyertakan contoh yang menjelaskan cara menggunakan notebook Azure Databricks Python untuk memanggil SDK bahasa Inggris untuk Apache Spark. Contoh ini menggunakan pertanyaan bahasa Inggris biasa untuk memandu SDK bahasa Inggris untuk Apache Spark untuk menjalankan kueri SQL pada tabel dari ruang kerja Azure Databricks Anda.

Persyaratan

  • Databricks telah menemukan bahwa GPT-4 bekerja secara optimal dengan SDK bahasa Inggris untuk Apache Spark. Artikel ini menggunakan GPT-4 dan mengasumsikan bahwa Anda memiliki kunci API OpenAI yang terkait dengan paket penagihan OpenAI. Untuk memulai paket penagihan OpenAI, masuk di https://platform.openai.com/account/billing/overview, klik Mulai paket pembayaran, dan ikuti petunjuk di layar. Setelah Anda memulai paket penagihan OpenAI, untuk membuat kunci API OpenAI, masuk https://platform.openai.com/account/api-keys dan klik Buat kunci rahasia baru.
  • Contoh ini menggunakan notebook Azure Databricks Python yang bisa Anda gunakan di ruang kerja Azure Databricks yang tersambung ke kluster Azure Databricks.

Langkah 1: Instal paket Python untuk SDK bahasa Inggris untuk Apache Spark

Di sel pertama buku catatan, jalankan kode berikut, yang diinstal pada sumber daya komputasi terlampir versi terbaru paket Python untuk SDK bahasa Inggris untuk Apache Spark:

%pip install pyspark-ai --upgrade

Langkah 2: Mulai ulang kernel Python untuk menggunakan paket yang diperbarui

Di sel kedua buku catatan, jalankan kode berikut, yang memulai ulang kernel Python untuk menggunakan paket Python yang diperbarui untuk SDK bahasa Inggris untuk Apache Spark dan dependensi paket yang diperbarui:

dbutils.library.restartPython()

Langkah 3: Atur kunci OPENAI API Anda

Di sel ketiga buku catatan, jalankan kode berikut, yang mengatur variabel lingkungan bernama OPENAI_API_KEY ke nilai kunci API OpenAI Anda. SDK bahasa Inggris untuk Apache Spark menggunakan kunci OpenAPI ini untuk mengautentikasi dengan OpenAI. Ganti <your-openai-api-key> dengan nilai kunci API OpenAI Anda:

import os

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

Penting

Dalam contoh ini, untuk kecepatan dan kemudahan penggunaan, Anda mengkodekan kunci OPENAI API Anda secara permanen ke dalam notebook. Dalam skenario produksi, ini adalah praktik terbaik keamanan untuk tidak mengkodekan kunci OPENAI API Anda ke dalam buku catatan Anda. Salah satu pendekatan alternatif adalah mengatur variabel lingkungan ini pada kluster yang terpasang. Lihat Variabel lingkungan.

Langkah 4: Atur dan aktifkan LLM

Di sel keempat buku catatan, jalankan kode berikut, yang mengatur LLM yang Anda inginkan untuk digunakan SDK bahasa Inggris untuk Apache Spark lalu aktifkan SDK Bahasa Inggris untuk Apache Spark dengan model yang dipilih. Untuk contoh ini, Anda menggunakan GPT-4. Secara default, SDK bahasa Inggris untuk Apache Spark mencari variabel lingkungan bernama OPENAI_API_KEY dan menggunakan nilainya untuk mengautentikasi dengan OpenAI untuk menggunakan 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()

Tip

Untuk menggunakan GPT-4 sebagai LLM default, Anda dapat menyederhanakan kode ini sebagai berikut:

from pyspark_ai import SparkAI

spark_ai = SparkAI()
spark_ai.activate()

Langkah 5: Membuat DataFrame sumber

Di sel kelima buku catatan, jalankan kode berikut, yang memilih semua data dalam samples.nyctaxi.trips tabel dari ruang kerja Azure Databricks Anda dan menyimpan data ini dalam DataFrame yang dioptimalkan untuk bekerja dengan SDK bahasa Inggris untuk Apache Spark. DataFrame ini diwakili di sini oleh variabel df:

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

Langkah 6: Mengkueri DataFrame dengan menggunakan pertanyaan bahasa Inggris biasa

Di sel keenam buku catatan, jalankan kode berikut, yang meminta SDK Bahasa Inggris untuk Apache Spark mencetak jarak perjalanan rata-rata, ke kesepuluh terdekat, untuk setiap hari selama Januari 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()

SDK bahasa Inggris untuk Apache Spark mencetak analisis dan jawaban akhirnya sebagai berikut:

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

SDK bahasa Inggris untuk Apache Spark menjalankan jawaban akhirnya dan mencetak hasilnya sebagai berikut:

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

Langkah berikutnya

  • Coba buat DataFrame, yang diwakili dalam contoh ini oleh variabel df, dengan data yang berbeda.
  • Coba gunakan pertanyaan bahasa Inggris biasa yang berbeda untuk fungsi tersebut df.ai.transform .
  • Coba gunakan model GPT-4 yang berbeda. Lihat GPT-4.
  • Jelajahi contoh kode tambahan. Lihat sumber daya tambahan berikut ini.

Sumber daya tambahan