Aracılığıyla paylaş


Apache Spark için İngilizce SDK

Dekont

Bu makale Apache Spark için İngilizce SDK'sını kapsar. Apache Spark için bu İngilizce SDK, databricks tarafından doğrudan desteklenmez. Geri bildirim sağlamak, soru sormak ve sorunları bildirmek için GitHub'daki Apache Spark deposu için İngilizce SDK'daki Sorunlar sekmesini kullanın.

Apache Spark için İngilizce SDK, İngilizce yönergeler alır ve bunları Spark nesnelerine derler. Amacı Spark'ı daha kullanıcı dostu ve erişilebilir hale getirmektir. Bu sayede verilerinizden içgörü ayıklamaya odaklanabilirsiniz.

Aşağıdaki bilgiler, Apache Spark için İngilizce SDK'yı çağırmak için Azure Databricks Python not defterini nasıl kullanabileceğinizi açıklayan bir örnek içerir. Bu örnekte, Apache Spark için İngilizce SDK'sının Azure Databricks çalışma alanınızdaki bir tabloda SQL sorgusu çalıştırmasına yol gösteren düz İngilizce bir soru kullanılmaktadır.

Gereksinimler

  • Databricks, GPT-4'in Apache Spark için İngilizce SDK ile en uygun şekilde çalıştığını tespit etti. Bu makalede GPT-4 kullanılır ve OpenAI faturalama planıyla ilişkilendirilmiş bir OpenAI API anahtarınız olduğu varsayılır. OpenAI faturalama planını başlatmak için adresinde https://platform.openai.com/account/billing/overviewoturum açın, Ödeme planını başlat'a tıklayın ve ekrandaki yönergeleri izleyin. OpenAI faturalama planını başlattıktan sonra OpenAI API anahtarı oluşturmak için adresinde oturum açın ve Yeni gizli anahtar oluştur'a https://platform.openai.com/account/api-keys tıklayın.
  • Bu örnekte, Azure Databricks kümesine bağlı bir Azure Databricks çalışma alanında kullanabileceğiniz bir Azure Databricks Python not defteri kullanılır.

1. Adım: Apache Spark için İngilizce SDK için Python paketini yükleme

Not defterinin ilk hücresinde, apache Spark için İngilizce SDK için Python paketinin en son sürümünü ekli işlem kaynağına yükleyen aşağıdaki kodu çalıştırın:

%pip install pyspark-ai --upgrade

2. Adım: Güncelleştirilmiş paketi kullanmak için Python çekirdeğini yeniden başlatın

Not defterinin ikinci hücresinde, Apache Spark için İngilizce SDK'sı ve güncelleştirilmiş paket bağımlılıkları için güncelleştirilmiş Python paketini kullanmak üzere Python çekirdeğini yeniden başlatan aşağıdaki kodu çalıştırın:

dbutils.library.restartPython()

3. Adım: OpenAI API anahtarınızı ayarlama

Not defterinin üçüncü hücresinde, adlı OPENAI_API_KEY bir ortam değişkenini OpenAI API anahtarınızın değerine ayarlayan aşağıdaki kodu çalıştırın. Apache Spark için İngilizce SDK, OpenAI ile kimlik doğrulaması yapmak için bu OpenAPI anahtarını kullanır. değerini OpenAI API anahtarınızın değeriyle değiştirin <your-openai-api-key> :

import os

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

Önemli

Bu örnekte, hız ve kullanım kolaylığı için OpenAI API anahtarınızı not defterine sabit bir şekilde kodlarsınız. Üretim senaryolarında, OpenAI API anahtarınızı not defterlerinize sabit olarak kodlamayın. Alternatif yaklaşımlardan biri, bu ortam değişkenini ekli kümede ayarlamaktır. Bkz. Ortam değişkenleri.

4. Adım: LLM'yi ayarlama ve etkinleştirme

Not defterinin dördüncü hücresinde, Apache Spark için İngilizce SDK'nın kullanmasını istediğiniz LLM'yi ayarlayan ve ardından seçilen modelle Apache Spark için İngilizce SDK'yı etkinleştiren aşağıdaki kodu çalıştırın. Bu örnekte GPT-4 kullanırsınız. Varsayılan olarak, Apache Spark için İngilizce SDK adlı OPENAI_API_KEY bir ortam değişkeni arar ve değerini kullanarak GPT-4 kullanmak üzere OpenAI ile kimlik doğrulaması yapar:

from langchain.chat_models import ChatOpenAI
from pyspark_ai import SparkAI

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

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

Bahşiş

GPT-4'i varsayılan LLM olarak kullanmak için bu kodu aşağıdaki gibi basitleştirebilirsiniz:

from pyspark_ai import SparkAI

spark_ai = SparkAI()
spark_ai.activate()

5. Adım: Kaynak DataFrame oluşturma

Not defterinin beşinci hücresinde, Azure Databricks çalışma alanınızdaki tablodaki samples.nyctaxi.trips tüm verileri seçen ve bu verileri Apache Spark için İngilizce SDK ile çalışacak şekilde iyileştirilmiş bir DataFrame'de depolayan aşağıdaki kodu çalıştırın. Bu DataFrame burada değişkeniyle dftemsil edilir:

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

6. Adım: Düz İngilizce soru kullanarak DataFrame'i sorgulama

Not defterinin altıncı hücresinde, Apache Spark için İngilizce SDK'dan Ocak 2016'da her gün için en yakın onda bir ortalama yolculuk mesafesini yazdırmasını isteyen aşağıdaki kodu çalıştırın.

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()

Apache Spark için İngilizce SDK analizini ve son yanıtını aşağıdaki gibi yazdırır:

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

Apache Spark için İngilizce SDK son yanıtını çalıştırır ve sonuçları aşağıdaki gibi yazdırır:

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

Sonraki adımlar

  • Bu örnekte değişkeniyle dftemsil edilen DataFrame'i farklı verilerle oluşturmayı deneyin.
  • İşlev için df.ai.transform farklı düz İngilizce sorular kullanmayı deneyin.
  • Farklı GPT-4 modellerini kullanmayı deneyin. Bkz. GPT-4.
  • Ek kod örneklerini keşfedin. Aşağıdaki ek kaynaklara bakın.

Ek kaynaklar