SDK الإنجليزية ل Apache Spark
إشعار
تتناول هذه المقالة SDK الإنجليزية ل Apache Spark. لا يتم دعم SDK الإنجليزية هذه ل Apache Spark مباشرة من قبل Databricks. لتقديم الملاحظات وطرح الأسئلة والإبلاغ عن المشكلات، استخدم علامة التبويب المشكلات في SDK الإنجليزية لمستودع Apache Spark في GitHub.
يأخذ SDK الإنجليزية ل Apache Spark إرشادات اللغة الإنجليزية ويحولها إلى كائنات Spark. هدفها هو جعل Spark أكثر سهولة في الاستخدام والوصول إليها، ما يمكنك من تركيز جهودك على استخراج الرؤى من بياناتك.
تتضمن المعلومات التالية مثالا يصف كيفية استخدام دفتر ملاحظات Azure Databricks Python لاستدعاء SDK الإنجليزية ل Apache Spark. يستخدم هذا المثال سؤالا إنجليزيا عاديا لتوجيه SDK الإنجليزية ل Apache Spark لتشغيل استعلام SQL على جدول من مساحة عمل Azure Databricks.
المتطلبات
- وجد Databricks أن GPT-4 يعمل على النحو الأمثل مع SDK الإنجليزية ل Apache Spark. تستخدم هذه المقالة GPT-4 وتفترض أن لديك مفتاح OpenAI API المقترن بخطة فوترة OpenAI. لبدء خطة فوترة OpenAI، سجل الدخول إلى https://platform.openai.com/account/billing/overview، وانقر فوق بدء خطة الدفع، واتبع الإرشادات التي تظهر على الشاشة. بعد بدء خطة فوترة OpenAI، لإنشاء مفتاح OpenAI API، سجل الدخول https://platform.openai.com/account/api-keys وانقر فوق إنشاء مفتاح سري جديد.
- يستخدم هذا المثال دفتر ملاحظات Azure Databricks Python الذي يمكنك استخدامه في مساحة عمل Azure Databricks المتصلة بمجموعة Azure Databricks.
الخطوة 1: تثبيت حزمة Python ل SDK الإنجليزية ل Apache Spark
في الخلية الأولى لدفتر الملاحظات، قم بتشغيل التعليمات البرمجية التالية، والتي تثبت على مورد الحساب المرفق أحدث إصدار من حزمة Python ل SDK الإنجليزية ل Apache Spark:
%pip install pyspark-ai --upgrade
الخطوة 2: إعادة تشغيل نواة Python لاستخدام الحزمة المحدثة
في الخلية الثانية لدفتر الملاحظات، قم بتشغيل التعليمات البرمجية التالية، والتي تعيد تشغيل نواة Python لاستخدام حزمة Python المحدثة ل SDK الإنجليزية ل Apache Spark وتبعيات الحزمة المحدثة الخاصة بها:
dbutils.library.restartPython()
الخطوة 3: تعيين مفتاح OpenAI API
في الخلية الثالثة لدفتر الملاحظات، قم بتشغيل التعليمات البرمجية التالية، والتي تعين متغير بيئة يسمى OPENAI_API_KEY
إلى قيمة مفتاح OpenAI API الخاص بك. تستخدم SDK الإنجليزية ل Apache Spark مفتاح OpenAPI هذا للمصادقة مع OpenAI. استبدل <your-openai-api-key>
بقيمة مفتاح OpenAI API الخاص بك:
import os
os.environ['OPENAI_API_KEY'] = '<your-openai-api-key>'
هام
في هذا المثال، من أجل السرعة وسهولة الاستخدام، يمكنك ترميز مفتاح OpenAI API في دفتر الملاحظات. في سيناريوهات الإنتاج، من أفضل الممارسات الأمنية عدم ترميز مفتاح OpenAI API في دفاتر الملاحظات الخاصة بك. يتمثل أحد النهج البديلة في تعيين متغير البيئة هذا على المجموعة المرفقة. راجع متغيرات البيئة.
الخطوة 4: تعيين LLM وتنشيطه
في الخلية الرابعة لدفتر الملاحظات، قم بتشغيل التعليمات البرمجية التالية، والتي تعين LLM التي تريد أن تستخدمها SDK الإنجليزية ل Apache Spark ثم تنشيط SDK الإنجليزية ل Apache Spark مع النموذج المحدد. على سبيل المثال، يمكنك استخدام GPT-4. بشكل افتراضي، تبحث SDK الإنجليزية ل Apache Spark عن متغير بيئة يسمى OPENAI_API_KEY
وتستخدم قيمته للمصادقة مع OpenAI لاستخدام 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()
تلميح
لاستخدام GPT-4 ك LLM افتراضي، يمكنك تبسيط هذه التعليمات البرمجية كما يلي:
from pyspark_ai import SparkAI
spark_ai = SparkAI()
spark_ai.activate()
الخطوة 5: إنشاء DataFrame مصدر
في الخلية الخامسة لدفتر الملاحظات، قم بتشغيل التعليمات البرمجية التالية، والتي تحدد جميع البيانات في samples.nyctaxi.trips
الجدول من مساحة عمل Azure Databricks وتخزن هذه البيانات في DataFrame الذي تم تحسينه للعمل مع SDK الإنجليزية ل Apache Spark. يتم تمثيل DataFrame هنا بواسطة المتغير df
:
df = spark_ai._spark.sql("SELECT * FROM samples.nyctaxi.trips")
الخطوة 6: الاستعلام عن DataFrame باستخدام سؤال إنجليزي عادي
في الخلية السادسة لدفتر الملاحظات، قم بتشغيل التعليمات البرمجية التالية، والتي تطلب من SDK الإنجليزية ل Apache Spark طباعة متوسط مسافة الرحلة، إلى أقرب عشر، لكل يوم خلال يناير من عام 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 الإنجليزية ل Apache Spark تحليلها والإجابة النهائية على النحو التالي:
> 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 الإنجليزية ل Apache Spark بتشغيل إجابتها النهائية وطباعة النتائج على النحو التالي:
+-----------+-----------------+
|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
الخطوات التالية
- حاول إنشاء DataFrame، ممثلة في هذا المثال بواسطة المتغير
df
، مع بيانات مختلفة. - حاول استخدام أسئلة مختلفة باللغة الإنجليزية العادية للدالة
df.ai.transform
. - حاول استخدام نماذج GPT-4 مختلفة. راجع GPT-4.
- استكشاف أمثلة التعليمات البرمجية الإضافية. راجع الموارد الإضافية التالية.
الموارد الإضافية
- SDK الإنجليزية لمستودع Apache Spark في GitHub
- موقع وثائق SDK للغة الإنجليزية ل Apache Spark
- منشور المدونة يقدم اللغة الإنجليزية كلغة برمجة جديدة ل Apache Spark
- الإعلان عن SDK للغة الإنجليزية ل Apache Spark والعرض التوضيحي أثناء التعليق الرئيسي Data + الذكاء الاصطناعي Summit من عام 2023
- جلسة SDK الإنجليزية ل Apache Spark أثناء Data + الذكاء الاصطناعي Summit 2023