הגדרת קטלוג זמן הריצה של Lakehouse ל-Managed Service for Apache Spark באמצעות Iceberg 1.10

הגדרת קטלוג מותאם אישית של Apache Iceberg ל-BigQuery מחברת את מנועי Apache Spark ו-Apache Flink לקטלוג זמן הריצה של Lakehouse.

אחרי שמקימים את השילוב הזה עם Lakehouse for Apache Iceberg, אפשר ליצור שכבת מטא-נתונים משותפת אחת כדי לנהל את הפורמטים של הטבלאות הפתוחות באמצעות אשכולות של Managed Service for Apache Spark או Managed Service for Apache Spark.

לפני שמתחילים

  1. מפעילים את החיוב בפרויקט Google Cloud . כך בודקים אם החיוב מופעל בפרויקט
  2. מפעילים את ממשקי ה-API של BigQuery ושל Managed Service for Apache Spark.

    הפעלת ממשקי ה-API

  3. הסבר על קטלוג זמן הריצה של Lakehouse

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות להגדרת קטלוג זמן הריצה של Lakehouse, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

  • יוצרים אשכול של Managed Service for Apache Spark: Dataproc Worker (roles/dataproc.worker) בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine בפרויקט
  • יוצרים טבלאות של קטלוג זמן ריצה של Lakehouse:
    • Dataproc Worker (roles/dataproc.worker) בחשבון השירות של מכונת ה-VM של Managed Service for Apache Spark בפרויקט
    • BigQuery Data Editor (roles/bigquery.dataEditor) בחשבון השירות של מכונת ה-VM של Managed Service for Apache Spark בפרויקט
    • Storage Object User (roles/storage.objectUser) בחשבון השירות של מכונת ה-VM של Managed Service for Apache Spark בפרויקט
  • שליחת שאילתות לטבלאות בקטלוג זמן הריצה של Lakehouse:

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

הגדרת ה-metastore באמצעות Managed Service for Apache Spark

אתם יכולים להגדיר קטלוג של Lakehouse בזמן ריצה באמצעות Managed Service for Apache Spark, באמצעות Spark או Flink:

Spark

  1. הגדרת אשכול חדש. כדי ליצור אשכול חדש של Managed Service for Apache Spark, מריצים את הפקודה gcloud dataproc clusters create הבאה, שכוללת את ההגדרות שצריך להשתמש בהן בקטלוג של Lakehouse runtime:

    gcloud dataproc clusters create CLUSTER_NAME \
        --project=PROJECT_ID \
        --region=LOCATION \
        --single-node

    מחליפים את מה שכתוב בשדות הבאים:

    • CLUSTER_NAME: שם לאשכול Managed Service for Apache Spark.
    • PROJECT_ID: המזהה של Google Cloud הפרויקט שבו יוצרים את האשכול.
    • LOCATION: האזור ב-Compute Engine שבו יוצרים את האשכול.
  2. שולחים משימת Spark באמצעות אחת מהשיטות הבאות:

    Google Cloud CLI

    gcloud dataproc jobs submit spark-sql \
        --project=PROJECT_ID \
        --cluster=CLUSTER_NAME \
        --region=REGION \
        --jars=https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-spark-runtime-3.5_2.12/1.10.0/iceberg-spark-runtime-3.5_2.12-1.10.0.jar,https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-bigquery/1.10.0/iceberg-bigquery-1.10.0.jar,https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-gcp-bundle/1.10.0/iceberg-gcp-bundle-1.10.0.jar,https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-gcp/1.10.0/iceberg-gcp-1.10.0.jar \
        --properties=spark.sql.catalog.CATALOG_NAME=org.apache.iceberg.spark.SparkCatalog,\
        spark.sql.catalog.CATALOG_NAME.type=bigquery,\
        spark.sql.catalog.CATALOG_NAME.gcp.bigquery.project-id=PROJECT_ID,\
        spark.sql.catalog.CATALOG_NAME.gcp.bigquery.location=LOCATION,\
        spark.sql.catalog.CATALOG_NAME.warehouse=WAREHOUSE_DIRECTORY \
        --execute="SPARK_SQL_COMMAND"

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה Google Cloud הפרויקט Google Cloud שמכיל את אשכול Managed Service for Apache Spark.
    • CLUSTER_NAME: השם של אשכול Managed Service for Apache Spark שבו אתם משתמשים כדי להריץ את עבודת Spark SQL.
    • REGION: האזור ב-Compute Engine שבו נמצא האשכול.
    • LOCATION: המיקום של משאבי BigQuery.
    • CATALOG_NAME: השם של קטלוג Spark שבו רוצים להשתמש בעבודת ה-SQL.
    • WAREHOUSE_DIRECTORY: תיקיית Cloud Storage שמכילה את מחסן הנתונים. הערך הזה מתחיל ב-gs://.
    • SPARK_SQL_COMMAND: שאילתת Spark SQL שרוצים להריץ. השאילתה הזו כוללת את הפקודות ליצירת המשאבים. לדוגמה, כדי ליצור מרחב שמות וטבלה.

    spark-sql CLI

    1. נכנסים לדף VM Instances במסוף Google Cloud .

      כניסה לדף VM Instances

    2. כדי להתחבר למכונה וירטואלית של Managed Service for Apache Spark, לוחצים על SSH בשורה שבה מופיע שם המכונה הווירטואלית הראשית של אשכול Managed Service for Apache Spark, שהוא שם האשכול ואחריו הסיומת -m. הפלט אמור להיראות כך:

      Connected, host fingerprint: ssh-rsa ...
      Linux cluster-1-m 3.16.0-0.bpo.4-amd64 ...
      ...
      example-cluster@cluster-1-m:~$
      
    3. בטרמינל, מריצים את הפקודה הבאה לאתחול קטלוג זמן הריצה של Lakehouse:

      spark-sql \
          --jars https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-spark-runtime-3.5_2.12/1.10.0/iceberg-spark-runtime-3.5_2.12-1.10.0.jar,https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-bigquery/1.10.0/iceberg-bigquery-1.10.0.jar,https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-gcp-bundle/1.10.0/iceberg-gcp-bundle-1.10.0.jar,https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-gcp/1.10.0/iceberg-gcp-1.10.0.jar \
          --conf spark.sql.catalog.CATALOG_NAME=org.apache.iceberg.spark.SparkCatalog \
          --conf spark.sql.catalog.CATALOG_NAME.type=bigquery \
          --conf spark.sql.catalog.CATALOG_NAME.gcp.bigquery.project-id=PROJECT_ID \
          --conf spark.sql.catalog.CATALOG_NAME.gcp.bigquery.location=LOCATION \
          --conf spark.sql.catalog.CATALOG_NAME.warehouse=WAREHOUSE_DIRECTORY

      מחליפים את מה שכתוב בשדות הבאים:

      • CATALOG_NAME: השם של קטלוג Spark שבו משתמשים עם משימת ה-SQL.
      • PROJECT_ID: מזהה הפרויקט של קטלוג זמן הריצה של Lakehouse שאליו מקושר קטלוג Spark. Google Cloud
      • LOCATION: המיקום Google Cloud של קטלוג זמן הריצה של Lakehouse.
      • WAREHOUSE_DIRECTORY: תיקיית Cloud Storage שמכילה את מחסן הנתונים. הערך הזה מתחיל ב-gs://.

      אחרי שמתחברים בהצלחה לאשכול, ההנחיה spark-sql מוצגת במסוף Spark. אפשר להשתמש בה כדי לשלוח משימות Spark.

      spark-sql (default)>
      
  1. יוצרים אשכול Managed Service for Apache Spark עם רכיב Flink אופציונלי מופעל, ומוודאים שאתם משתמשים ב-Managed Service for Apache Spark 2.2 או בגרסה מתקדמת יותר.
  2. נכנסים לדף VM instances במסוף Google Cloud .

    כניסה לדף VM instances

  3. ברשימת המכונות הווירטואליות, לוחצים על SSH כדי להתחבר למכונה הווירטואלית הראשית של אשכול Managed Service for Apache Spark, שמופיעה ברשימה כשם האשכול ואחריו הסיומת -m.

  4. הגדרת הפלאגין של קטלוג מותאם אישית של Apache Iceberg עבור קטלוג זמן הריצה של Lakehouse:

    FLINK_VERSION=1.20
    ICEBERG_VERSION=1.10.0
    
    cd /usr/lib/flink
    
    sudo wget -c https://repo.maven.apache.org/maven2/org/apache/iceberg/iceberg-flink-runtime-${FLINK_VERSION}/${ICEBERG_VERSION}/iceberg-flink-runtime-${FLINK_VERSION}-${ICEBERG_VERSION}.jar -P lib
    
    sudo wget -c https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-bigquery/${ICEBERG_VERSION}/iceberg-bigquery-${ICEBERG_VERSION}.jar -P lib
    
    sudo wget -c https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-gcp-bundle/${ICEBERG_VERSION}/iceberg-gcp-bundle-${ICEBERG_VERSION}.jar -P lib
    
    sudo wget -c https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-gcp/${ICEBERG_VERSION}/iceberg-gcp-${ICEBERG_VERSION}.jar -P lib
  5. מפעילים את סשן Flink ב-YARN:

    HADOOP_CLASSPATH=`hadoop classpath`
    
    sudo bin/yarn-session.sh -nm flink-dataproc -d
    
    sudo bin/sql-client.sh embedded \
    -s yarn-session
  6. יצירת קטלוג ב-Flink:

    CREATE CATALOG CATALOG_NAME WITH (
    'type'='iceberg',
    'warehouse'='WAREHOUSE_DIRECTORY',
    'catalog-impl'='org.apache.iceberg.gcp.bigquery.BigQueryMetastoreCatalog',
    'gcp.bigquery.project-id'='PROJECT_ID',
    'gcp.bigquery.location'='LOCATION'
    );

    מחליפים את מה שכתוב בשדות הבאים:

    • CATALOG_NAME: מזהה הקטלוג של Flink, שמקושר לקטלוג של Lakehouse בזמן ריצה.
    • WAREHOUSE_DIRECTORY: נתיב הבסיס של ספריית מחסן הנתונים (התיקייה ב-Cloud Storage שבה Flink יוצרת קבצים). הערך הזה מתחיל ב-gs://.
    • PROJECT_ID: מזהה הפרויקט של קטלוג Lakehouse runtime catalog שאליו מקושר קטלוג Flink.
    • LOCATION: המיקום של מקורות המידע ב-BigQuery.

הסשן של Flink מחובר עכשיו לקטלוג של סביבת זמן הריצה של Lakehouse, ואפשר להריץ פקודות Flink SQL.

עכשיו, אחרי שהתחברתם לקטלוג של זמן הריצה של Lakehouse, אתם יכולים ליצור משאבים ולצפות בהם על סמך המטא-נתונים שמאוחסנים בקטלוג של זמן הריצה של Lakehouse.

לדוגמה, אפשר להריץ את הפקודות הבאות בסשן האינטראקטיבי של Flink SQL כדי ליצור מסד נתונים וטבלה של Apache Iceberg.

  1. שימוש בקטלוג מותאם אישית של Apache Iceberg:

    USE CATALOG CATALOG_NAME;

    מחליפים את CATALOG_NAME במזהה הקטלוג של Flink.

  2. יוצרים מסד נתונים, וכך נוצר מערך נתונים ב-BigQuery:

    CREATE DATABASE IF NOT EXISTS DATABASE_NAME;

    מחליפים את DATABASE_NAME בשם של מסד הנתונים החדש.

  3. משתמשים במסד הנתונים שיצרתם:

    USE DATABASE_NAME;
  4. יוצרים טבלת Apache Iceberg. הקוד הבא יוצר טבלת מכירות לדוגמה:

    CREATE TABLE IF NOT EXISTS ICEBERG_TABLE_NAME (
      order_number BIGINT,
      price        DECIMAL(32,2),
      buyer        ROW<first_name STRING, last_name STRING>,
      order_time   TIMESTAMP(3)
    );

    מחליפים את ICEBERG_TABLE_NAME בשם של הטבלה החדשה.

  5. צפייה במטא-נתונים של טבלה:

    DESCRIBE EXTENDED ICEBERG_TABLE_NAME;
  6. מציגים רשימה של הטבלאות במסד הנתונים:

    SHOW TABLES;

הוספת נתונים לטבלה

אחרי שיוצרים טבלת Apache Iceberg כמו שמתואר בקטע הקודם, אפשר להשתמש ב-Flink DataGen כמקור נתונים כדי להטמיע נתונים בזמן אמת בטבלה. השלבים הבאים הם דוגמה לתהליך העבודה הזה:

  1. יצירת טבלה זמנית באמצעות DataGen:

    CREATE TEMPORARY TABLE DATABASE_NAME.TEMP_TABLE_NAME
    WITH (
      'connector' = 'datagen',
      'rows-per-second' = '10',
      'fields.order_number.kind' = 'sequence',
      'fields.order_number.start' = '1',
      'fields.order_number.end' = '1000000',
      'fields.price.min' = '0',
      'fields.price.max' = '10000',
      'fields.buyer.first_name.length' = '10',
      'fields.buyer.last_name.length' = '10'
    )
    LIKE DATABASE_NAME.ICEBERG_TABLE_NAME (EXCLUDING ALL);

    מחליפים את מה שכתוב בשדות הבאים:

    • DATABASE_NAME: שם מסד הנתונים שבו תאוחסן הטבלה הזמנית.
    • TEMP_TABLE_NAME: שם לטבלה הזמנית.
    • ICEBERG_TABLE_NAME: השם של טבלת Apache Iceberg שיצרתם בקטע הקודם.
  2. מגדירים את רמת המקביליות ל-1:

    SET 'parallelism.default' = '1';
  3. מגדירים את מרווח הזמן בין נקודות הביקורת:

    SET 'execution.checkpointing.interval' = '10second';
  4. מגדירים את נקודת הביקורת:

    SET 'state.checkpoints.dir' = 'hdfs:///flink/checkpoints';
  5. מפעילים את משימת הסטרימינג בזמן אמת:

    INSERT INTO ICEBERG_TABLE_NAME SELECT * FROM TEMP_TABLE_NAME;

    הפלט אמור להיראות כך:

    [INFO] Submitting SQL update statement to the cluster...
    [INFO] SQL update statement has been successfully submitted to the cluster:
    Job ID: 0de23327237ad8a811d37748acd9c10b
    
  6. כדי לבדוק את הסטטוס של עבודת הסטרימינג:

    1. נכנסים לדף Clusters במסוף Google Cloud .

      מעבר אל Clusters

    2. בוחרים את האשכול.

    3. לוחצים על הכרטיסייה Web interfaces (ממשקי אינטרנט).

    4. לוחצים על הקישור YARN ResourceManager.

    5. בממשק YARN ResourceManager, מוצאים את סשן Flink ולוחצים על הקישור ApplicationMaster בקטע Tracking UI.

    6. בעמודה סטטוס, מוודאים שהסטטוס של העבודה הוא פועל.

  7. הפעלת שאילתות על נתונים בסטרימינג בלקוח Flink SQL:

    SELECT * FROM ICEBERG_TABLE_NAME
    /*+ OPTIONS('streaming'='true', 'monitor-interval'='3s')*/
    ORDER BY order_time desc
    LIMIT 20;
  8. הרצת שאילתות על נתונים בסטרימינג ב-BigQuery:

    SELECT * FROM `DATABASE_NAME.ICEBERG_TABLE_NAME`
    ORDER BY order_time desc
    LIMIT 20;
  9. מפסיקים את עבודת הסטרימינג בלקוח Flink SQL:

    STOP JOB 'JOB_ID';

    מחליפים את JOB_ID במזהה המשימה שהוצג בפלט כשיוצרים את משימת הסטרימינג.

הגדרת ה-metastore באמצעות Managed Service for Apache Spark

אתם יכולים להגדיר קטלוג של Lakehouse runtime באמצעות Managed Service for Apache Spark באמצעות Spark SQL או PySpark.

Spark SQL

  1. יוצרים קובץ SQL עם פקודות Spark SQL שרוצים להריץ בקטלוג של Lakehouse runtime. לדוגמה, הפקודה הבאה יוצרת מרחב שמות וטבלה:

    SET `spark.sql.catalog.CATALOG_NAME`=`org.apache.iceberg.spark.SparkCatalog`;
    SET `spark.sql.catalog.CATALOG_NAME.type`=`bigquery`;
    SET `spark.sql.catalog.CATALOG_NAME.gcp.bigquery.project-id`=`PROJECT_ID`;
    SET `spark.sql.catalog.CATALOG_NAME.gcp.bigquery.location`=`LOCATION`;
    SET `spark.sql.catalog.CATALOG_NAME.warehouse`=`WAREHOUSE_DIRECTORY`;
    
    CREATE NAMESPACE `CATALOG_NAME`.NAMESPACE_NAME;
    CREATE TABLE `CATALOG_NAME`.NAMESPACE_NAME.TABLE_NAME (id int, data string) USING ICEBERG LOCATION 'WAREHOUSE_DIRECTORY';

    מחליפים את מה שכתוב בשדות הבאים:

    • CATALOG_NAME: שם הקטלוג שמפנה לטבלת Spark.
    • NAMESPACE_NAME: שם מרחב השמות שמפנה לטבלת Spark.
    • TABLE_NAME: שם הטבלה של Spark.
    • WAREHOUSE_DIRECTORY: ה-URI של תיקיית Cloud Storage שבה מאוחסן מחסן הנתונים.
  2. מריצים את הפקודה gcloud dataproc batches submit spark-sql הבאה כדי לשלוח משימה באצווה של Spark SQL:

    gcloud dataproc batches submit spark-sql SQL_SCRIPT_PATH \
        --project=PROJECT_ID \
        --region=REGION \
        --subnet=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \
        --deps-bucket=BUCKET_PATH \
        --jars=https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-spark-runtime-3.5_2.12/1.10.0/iceberg-spark-runtime-3.5_2.12-1.10.0.jar,https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-bigquery/1.10.0/iceberg-bigquery-1.10.0.jar,https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-gcp-bundle/1.10.0/iceberg-gcp-bundle-1.10.0.jar,https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-gcp/1.10.0/iceberg-gcp-1.10.0.jar

    מחליפים את מה שכתוב בשדות הבאים:

    • SQL_SCRIPT_PATH: הנתיב לקובץ ה-SQL שבו משתמשת משימה באצווה.
    • PROJECT_ID: מזהה Google Cloud הפרויקט שבו תופעל משימה באצווה.
    • REGION: האזור שבו עומס העבודה פועל.
    • SUBNET_NAME (אופציונלי): השם של רשת משנה של VPC ב-REGION שעומדת בדרישות של רשת משנה של סשן.
    • BUCKET_PATH: המיקום של קטגוריית Cloud Storage להעלאת תלות של עומסי עבודה. הקטגוריה WAREHOUSE_DIRECTORY נמצאת בדלי הזה. אין צורך לציין את הקידומת gs:// URI של קטגוריית האחסון. אפשר לציין את הנתיב לקטגוריה או את שם הקטגוריה, לדוגמה, mybucketname1.
    • LOCATION: המיקום שבו תופעל משימה באצווה.

    מידע נוסף על שליחת משימות אצווה של Spark זמין במאמר הרצת עומס עבודה של אצווה ב-Spark.

PySpark

  1. יוצרים קובץ Python עם פקודות PySpark שרוצים להריץ בקטלוג של Lakehouse runtime.

    לדוגמה, הפקודה הבאה מגדירה סביבת Spark כדי ליצור אינטראקציה עם טבלאות Apache Iceberg שמאוחסנות בקטלוג של Lakehouse runtime. הפקודה יוצרת מרחב שמות חדש וטבלת Apache Iceberg בתוך מרחב השמות הזה.

    from pyspark.sql import SparkSession
    
    spark = SparkSession.builder \
    .appName("Lakehouse runtime catalog Iceberg") \
    .config("spark.sql.catalog.CATALOG_NAME", "org.apache.iceberg.spark.SparkCatalog") \
    .config("spark.sql.catalog.CATALOG_NAME.type", "bigquery") \
    .config("spark.sql.catalog.CATALOG_NAME.gcp.bigquery.project-id", "PROJECT_ID") \
    .config("spark.sql.catalog.CATALOG_NAME.gcp.bigquery.location", "LOCATION") \
    .config("spark.sql.catalog.CATALOG_NAME.warehouse", "WAREHOUSE_DIRECTORY") \
    .getOrCreate()
    
    spark.sql("USE `CATALOG_NAME`;")
    spark.sql("CREATE NAMESPACE IF NOT EXISTS NAMESPACE_NAME;")
    spark.sql("USE NAMESPACE_NAME;")
    spark.sql("CREATE TABLE TABLE_NAME (id int, data string) USING ICEBERG LOCATION 'WAREHOUSE_DIRECTORY';")

    מחליפים את מה שכתוב בשדות הבאים:

    • PROJECT_ID: מזהה Google Cloud הפרויקט שבו תופעל משימה באצווה.
    • LOCATION: המיקום שבו נמצאים מקורות המידע ב-BigQuery.
    • CATALOG_NAME: שם הקטלוג שמפנה לטבלת Spark.
    • TABLE_NAME: שם הטבלה של Spark.
    • WAREHOUSE_DIRECTORY: ה-URI של תיקיית Cloud Storage שבה מאוחסן מחסן הנתונים.
    • NAMESPACE_NAME: שם מרחב השמות שמפנה לטבלת Spark.
  2. שולחים את משימה באצווה באמצעות הפקודה gcloud dataproc batches submit pyspark הבאה:

    gcloud dataproc batches submit pyspark PYTHON_SCRIPT_PATH \
        --version=2.2 \
        --project=PROJECT_ID \
        --region=REGION \
        --subnet=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \
        --deps-bucket=BUCKET_PATH \
        --jars=https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-spark-runtime-3.5_2.12/1.10.0/iceberg-spark-runtime-3.5_2.12-1.10.0.jar,https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-bigquery/1.10.0/iceberg-bigquery-1.10.0.jar,https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-gcp-bundle/1.10.0/iceberg-gcp-bundle-1.10.0.jar,https://storage-download.googleapis.com/maven-central/maven2/org/apache/iceberg/iceberg-gcp/1.10.0/iceberg-gcp-1.10.0.jar

    מחליפים את מה שכתוב בשדות הבאים:

    • PYTHON_SCRIPT_PATH: הנתיב לסקריפט Python שבו נעשה שימוש במשימה באצווה.
    • PROJECT_ID: מזהה Google Cloud הפרויקט שבו תופעל משימה באצווה.
    • REGION: האזור שבו עומס העבודה פועל.
    • BUCKET_PATH: המיקום של קטגוריית Cloud Storage להעלאת תלות של עומסי עבודה. אין צורך לציין את הקידומת gs:// URI של קטגוריית האחסון. אפשר לציין את נתיב הקטגוריה או את שם הקטגוריה, לדוגמה, mybucketname1.

    מידע נוסף על שליחת משימות אצווה של PySpark זמין בהפניה ל-PySpark gcloud.

המאמרים הבאים