לקוח Dataproc Spark Connect הוא wrapper של לקוח Apache Spark Connect. הוא מאפשר לאפליקציות לתקשר עם סשן מרוחק של Serverless for Apache Spark באמצעות פרוטוקול Spark Connect. במאמר הזה מוסבר איך להתקין את הלקוח, להגדיר אותו ולהשתמש בו.
לפני שמתחילים
חשוב לוודא שיש לכם תפקידים בניהול זהויות והרשאות גישה (IAM) שכוללים את ההרשאות שנדרשות לניהול של סשנים אינטראקטיביים ותבניות של סשנים.
אם מריצים את הלקוח מחוץ ל- Google Cloud, צריך לספק פרטי כניסה לאימות. מגדירים את משתנה הסביבה
GOOGLE_APPLICATION_CREDENTIALSלנתיב של קובץ המפתח של חשבון השירות.
התקנה או הסרה של הלקוח
אפשר להתקין או להסיר את החבילה dataproc-spark-connect באמצעות pip.
התקנה
כדי להתקין את הגרסה האחרונה של הלקוח, מריצים את הפקודה הבאה:
pip install -U dataproc-spark-connect
הסרה
כדי להסיר את הלקוח, מריצים את הפקודה הבאה:
pip uninstall dataproc-spark-connect
הגדרת הלקוח
מציינים את הפרויקט והאזור של הסשן. אפשר להגדיר את הערכים האלה באמצעות משתני סביבה או באמצעות builder API בקוד.
משתני סביבה
מגדירים את משתני הסביבה GOOGLE_CLOUD_PROJECT ו-GOOGLE_CLOUD_REGION.
Builder API
משתמשים בשיטות .projectId() ו-.location().
spark = DataprocSparkSession.builder.projectId("my-project").location("us-central1").getOrCreate()
התחלת סשן Spark
כדי להתחיל סשן Spark, מוסיפים את הייבוא הנדרש לאפליקציית PySpark או למחברת, ואז קוראים ל-API DataprocSparkSession.builder.getOrCreate().
מייבאים את הכיתה
DataprocSparkSession.מבצעים קריאה ל-
getOrCreate()כדי להתחיל את הסשן.from google.cloud.dataproc_spark_connect import DataprocSparkSession spark = DataprocSparkSession.builder.getOrCreate()
הגדרת מאפייני Spark
כדי להגדיר מאפייני Spark, משרשרים שיטה אחת או יותר ל-builder..config()
from google.cloud.dataproc_spark_connect import DataprocSparkSession
spark = DataprocSparkSession.builder.config('spark.executor.memory', '48g').config('spark.executor.cores', '8').getOrCreate()
שימוש בהגדרות מתקדמות
להגדרות מתקדמות, אפשר להשתמש במחלקת Session כדי להתאים אישית הגדרות כמו רשת המשנה או גרסת זמן הריצה.
from google.cloud.dataproc_spark_connect import DataprocSparkSession
from google.cloud.dataproc_v1 import Session
session_config = Session()
session_config.environment_config.execution_config.subnetwork_uri = 'SUBNET'
session_config.runtime_config.version = '3.0'
spark = DataprocSparkSession.builder.projectId('my-project').location('us-central1').dataprocSessionConfig(session_config).getOrCreate()
שימוש חוזר בסשן עם שם
סשנים עם שם מאפשרים לכם לשתף סשן Spark יחיד בין כמה מחברות, תוך הימנעות מעיכובים חוזרים בזמן ההפעלה של הסשן.
ב-Notebook הראשון, יוצרים סשן עם מזהה בהתאמה אישית.
from google.cloud.dataproc_spark_connect import DataprocSparkSession session_id = 'my-ml-pipeline-session' spark = DataprocSparkSession.builder.dataprocSessionId(session_id).getOrCreate() df = spark.createDataFrame([(1, 'data')], ['id', 'value']) df.show()במחברת אחרת, אפשר להשתמש שוב בסשן על ידי ציון אותו מזהה סשן.
from google.cloud.dataproc_spark_connect import DataprocSparkSession session_id = 'my-ml-pipeline-session' spark = DataprocSparkSession.builder.dataprocSessionId(session_id).getOrCreate() df = spark.createDataFrame([(2, 'more-data')], ['id', 'value']) df.show()
מזהי הסשנים צריכים להיות באורך של 4 עד 63 תווים, להתחיל באות קטנה ולכלול רק אותיות קטנות, מספרים ומקפים. המזהה לא יכול להסתיים במקף. אי אפשר לעשות שימוש חוזר בסשן עם מזהה שנמצא במצב TERMINATED.
שימוש בפקודות Magic של Spark SQL
החבילה תומכת בספרייה sparksql-magic להרצת שאילתות Spark SQL במחברות Jupyter. פקודות קסם הן תכונה אופציונלית.
מתקינים את יחסי התלות הנדרשים.
pip install IPython sparksql-magicטוענים את התוסף הקסום.
%load_ext sparksql_magicאופציונלי: הגדרת הגדרות ברירת מחדל.
%config SparkSql.limit=20הפעלת שאילתות SQL.
%%sparksql SELECT * FROM your_table
כדי להשתמש באפשרויות מתקדמות, מוסיפים דגלים לפקודה %%sparksql. לדוגמה, כדי לשמור תוצאות במטמון וליצור תצוגה, מריצים את הפקודה הבאה:
%%sparksql --cache --view result_view df
SELECT * FROM your_table WHERE condition = true
אלו האפשרויות הזמינות:
-
--cacheאו-c: שמירת ה-DataFrame במטמון. -
--eagerאו-e: מטמונים עם טעינה מראש. -
--view VIEWאו-v VIEW: יוצר תצוגה זמנית. -
--limit Nאו-l N: מבטל את מגבלת ברירת המחדל של הצגת השורות. -
variable_name: מאחסן את התוצאה במשתנה.