Lightning Engine verwenden

Lightning Engine ist eine leistungsstarke Ausführungsumgebung für Apache Spark in Managed Service for Apache Spark, die rechenintensive Arbeitslasten beschleunigt und die Laufzeitkosten senkt, ohne dass Änderungen an Ihrem Spark-Code erforderlich sind. Sie ist für Data Engineers und Analyseexperten konzipiert, die rechenintensive Arbeitslasten mit Spark DataFrame APIs, Spark Dataset APIs oder Spark SQL-Abfragen ausführen.

Vorteile

Die Vorteile von Lightning Engine sind unter anderem:

  • Beschleunigte Datenvorgänge: Erzielen Sie erhebliche Leistungssteigerungen und Kosteneinsparungen durch Optimierungen der Cloud Storage-Interaktion, einschließlich Metadatenverarbeitung, Schreibarbeitslasten und vektorisierter E/A.

  • Intelligente Abfrageausführung: Nutzen Sie erweiterte Optimierungen, um die gescannten Daten dynamisch zu reduzieren, die Datenverarbeitung zu optimieren und effizientere Ausführungspläne für schnellere, kostengünstigere Abfragen zu generieren.

  • Optimierte KI- und ML-Arbeitslasten: Reduzieren Sie die Cluster-Startzeiten für GPU-basierte Arbeitslasten und vereinfachen Sie die Bereitstellung in sicheren Umgebungen mit für KI optimierten Images.

Die Lightning Engine bietet zwar erhebliche Leistungssteigerungen, die genauen Auswirkungen variieren jedoch je nach Arbeitslast.

Vergleich mit der Standard-Engine

Lightning Engine ist eine Alternative zur Standard-Engine, die zum Ausführen von Spark-Jobs in einem Managed Service for Apache Spark-Cluster verwendet wird. In der folgenden Tabelle werden die Aktivierungseigenschaften, die Anwendbarkeit auf Arbeitslasten und die wichtigsten Vorteile der Lightning Engine mit denen der Standard-Engine verglichen.

Funktion Standardmotor Lightning Engine
CLI-Flag --engine=default oder das Flag entfernen --engine=lightning
Optimal für Jobs für allgemeine Zwecke, Entwicklung und Tests Unternehmensweite Arbeitslasten, die eine erhebliche Beschleunigung erfordern
Hauptvorteile Baseline-Leistung Optimierte Cloud Storage-Interaktion, intelligente Abfrageausführung

Anforderungen an die Lightning Engine

Für die Lightning Engine-Funktion gelten die folgenden Anforderungen:

  • Image-Version: Die Lightning Engine muss mit der Managed Service for Apache Spark-Image-Version 2.3.3 und späteren 2.3-Subminor-Image-Versionen oder mit der Image-Version 3.0.2 und späteren 3.0-Subminor-Image-Versionen (debian13- und ubuntu24-Images) verwendet werden.
  • Unterstützte Jobs: Spark, PySpark, SparkSQL und SparkR werden unterstützt. Die Standard-Engine wird für andere Jobtypen ausgeführt, die an einen Lightning Engine-Cluster gesendet werden.

Ausführung nativer Abfragen

Die Ausführung nativer Abfragen (Native Query Execution, NQE) ist eine optionale Komponente von Lightning Engine, die eine noch stärkere Beschleunigung für bestimmte Jobs ermöglicht. Es handelt sich um eine native Engine, die auf Apache Gluten und Velox basiert und für Google-Hardware optimiert ist. Sie steigert die Leistung, indem Teile einer Spark-Abfrage außerhalb der JVM ausgeführt werden.

NQE wird empfohlen für:
Rechenintensive Aufgaben, die Spark DataFrame APIs und Spark Dataset APIs nutzen, sowie Spark SQL-Abfragen, die Daten aus Parquet-, ORC-, Apache Iceberg- und Delta Lake-Dateien und -Tabellen lesen. Das Format der Ausgabedatei hat keinen Einfluss auf die Leistung.
NQE wird nicht empfohlen für:
Jobs, die stark von Resilient Distributed Datasets (RDDs), benutzerdefinierten Funktionen (UDFs), den meisten Spark-Bibliotheken für maschinelles Lernen (ML) und E/A-gebundenen Vorgängen mit Verzögerungen aufgrund des Speicherzugriffs abhängen.

Ausführung nativer Abfragen auf ARM

Managed Service for Apache Spark unterstützt die native Abfrageausführung in der Lightning Engine auf der ARM-Architektur, die speziell für Google Axion-Prozessoren auf C4A-ARM-VMs optimiert ist (siehe Von Managed Service for Apache Spark unterstützte ARM-Maschinentypen), wobei das Image 2.3-ubuntu22-arm verwendet wird. Google Axion C4A-Instanzen sind ARM-basierte VMs, die auf ARM Neoverse V2-Kernen basieren und erhebliche Verbesserungen beim Preis-Leistungs-Verhältnis bieten.

Die Ausführung der NQE auf Google Axion ARM-Instanzen kombiniert das Preis-Leistungs-Verhältnis auf Hardwareebene und eine hohe Speicherbandbreite pro Kern mit nativer vektorisierter Abfragebeschleunigung auf Softwareebene. Dadurch werden die Abfragelaufzeiten und die Gesamtbetriebskosten (TCO) erheblich reduziert.

Zu den wichtigsten Vorteilen von ARM gehören:

  • 2,5- bis 4-mal schneller als Open-Source-Spark: Bietet bei analytischen Arbeitslasten eine 2,5- bis 4-mal höhere Leistung als Open-Source-Apache Spark.
  • Kostenoptimierung: Maximiert den Preis-Leistungs-Vorteil von Google Axion C4A-Instanzen, die ein bis zu 65% besseres Preis-Leistungs-Verhältnis als vergleichbare x86-Instanzen bieten.
  • Vollständige Operator- und Formatparität: Vollständige Parität mit x86-NQE-Operatoren, mit nativer Beschleunigung für die Tabellenformate Cloud Storage Parquet, Apache Iceberg und Delta Lake.
  • Keine Codeänderungen: Nahtlose Aktivierung auf ARM-Clustern mit Standardkonfigurations-Flags, ohne dass der Spark-Anwendungscode geändert werden muss.

Anforderungen für die Ausführung nativer Abfragen

Für die native Abfrageausführung gelten die folgenden Anforderungen:

  • Ausführungs-Engine: NQE ist nur auf Clustern verfügbar, für die bei der Clustererstellung die Lightning-Engine aktiviert wurde.

  • Unterstützte Jobs: Spark, PySpark, Spark SQL und SparkR werden unterstützt. Die Standard-Engine wird (ohne NQE) für andere Jobtypen ausgeführt, die an einen Lightning Engine-Cluster gesendet werden.

  • Keine GPUs und Beschleuniger: NQE-fähige Jobs, die auf GPU-Beschleunigern eingereicht werden, schlagen fehl (können aber von der Lightning Engine ohne NQE profitieren).

  • Datentypen: Eingaben der folgenden Datentypen werden nicht unterstützt:

    • Byte: ORC und Parquet
    • Struct, Array, Map: Parquet

Anforderungen an Architektur und Betriebssystem

Die NQE-Anforderungen unterscheiden sich je nach Prozessorarchitektur:

Architektur Unterstützte Maschinentypen Unterstütztes Betriebssystem und Image
x86 Intel- und AMD-Maschinenfamilien Debian-12 und Ubuntu-22 (Image-Version 2.3.3 und spätere 2.3-Releases); Debian-13 und Ubuntu-24 (Image-Version 3.0.2 und spätere 3.0-Releases)
ARM C4A-Maschinenserie (Google Axion ARM-VMs) 2.3-ubuntu22-arm-Image (Version 2.3.3 und höher, 2.3-Releases)

Preise

Preisinformationen finden Sie unter Preise für Managed Service for Apache Spark.

Lightning Engine-Cluster erstellen

In diesem Abschnitt erfahren Sie, wie Sie einen Managed Service for Apache Spark-Cluster erstellen, der die Lightning Engine für Spark-Jobs aktiviert, die an den Cluster gesendet werden.

Sie können die native Abfrageausführung (Native Query Execution, NQE) für den Cluster auch beim Erstellen des Clusters aktivieren oder später für bestimmte Spark-Jobs, die an den Cluster gesendet werden.

Hinweis

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that you have the permissions required to complete this guide.

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Dataproc API, if it is not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the API

  5. Install the Google Cloud CLI.

  6. Configure the gcloud CLI to use your federated identity.

    For more information, see Sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

    gcloud init

Erforderliche Rollen

Bestimmte IAM-Rollen (Identity and Access Management) sind erforderlich, um einen Managed Service for Apache Spark-Cluster zu erstellen und Jobs an den Cluster zu senden. Abhängig von den Organisationsrichtlinien hat ein Cloud-Projektinhaber oder Dienstadministrator Ihnen oder einem Dienstkonto diese Rollen möglicherweise bereits zugewiesen. Informationen zum Prüfen von Rollenzuweisungen finden Sie unter Müssen Sie Rollen zuweisen?.

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Nutzerrollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen eines Managed Service for Apache Spark-Clusters benötigen:

Dienstkontorolle

Bitten Sie Ihren Administrator, dem Compute Engine-Standarddienstkonto die IAM-Rolle Dataproc-Worker (roles/dataproc.worker) für das Projekt zuzuweisen, damit das Compute Engine-Standarddienstkonto die erforderlichen Berechtigungen zum Erstellen eines Managed Service for Apache Spark-Clusters hat.

Cluster erstellen

In den folgenden Beispielen wird gezeigt, wie Sie einen Lightning Engine-Cluster mit der Google Cloud Console, der Google Cloud CLI, der Dataproc API, den Cloud-Clientbibliotheken für Python oder Terraform erstellen. Sie können auch einen Cluster mit aktivierter Lightning Engine erstellen, indem Sie die Cloud-Clientbibliotheken für Go, Java und Node.js verwenden.

Console

  1. Öffnen Sie die Seite Cluster erstellen.
  2. Klicken Sie auf Zusätzliche Konfiguration, um den Bereich zu maximieren.
  3. Bearbeiten Sie Anpassung und Sonstiges.
  4. Prüfen Sie im daraufhin angezeigten Bereich, ob das Kästchen Lightning Engine aktivieren ausgewählt ist.
  5. Optional: Wenn Sie die native Ausführungslaufzeit standardmäßig für Spark-Jobs aktivieren möchten, klicken Sie auf das Kästchen Native Ausführung aktivieren.
  6. Klicken Sie auf Speichern.
  7. Konfigurieren Sie bei Bedarf weitere Clustereinstellungen.
  8. Klicken Sie auf Cluster erstellen.

ARM-Cluster erstellen:

So erstellen Sie einen ARM-Cluster mit Google Axion und nativer Abfrageausführung:

  1. Wählen Sie unter Worker-Konfiguration die Maschinenreihe C4A und dann Ihren ARM-Maschinentyp aus.
  2. Wählen Sie unter Image das Image 2.3-ubuntu22-arm aus.
  3. Prüfen Sie unter Zusätzliche Konfiguration > Anpassung und Sonstiges, ob Lightning Engine aktivieren und Native Ausführung aktivieren ausgewählt sind.
  4. Klicken Sie auf Cluster erstellen.

gcloud

  1. Führen Sie den Befehl gcloud dataproc clusters create mit dem Flag --engine=lightning aus, um einen Cluster mit aktivierter Lightning Engine zu erstellen. Weitere Informationen finden Sie unter Cluster mit der gcloud CLI erstellen.

    gcloud dataproc clusters create CLUSTER_NAME \
        --region=REGION \
        --engine=lightning \
        --image-version=2.3
    
  2. Optional: Wenn Sie die native Ausführungslaufzeit standardmäßig für Spark-Jobs aktivieren möchten, fügen Sie das Attribut spark:spark.dataproc.lightningEngine.runtime=native hinzu.

    gcloud dataproc clusters create CLUSTER_NAME \
        --region=REGION \
        --engine=lightning \
        --image-version=2.3 \
        --properties='spark:spark.dataproc.lightningEngine.runtime=native'
    
  3. ARM-Cluster mit NQE erstellen: So erstellen Sie einen Managed Service for Apache Spark-Cluster mit Google Axion C4A-ARM-Knoten und aktiviertem NQE:

    gcloud dataproc clusters create CLUSTER_NAME \
        --region=REGION \
        --image-version=2.3-ubuntu22-arm \
        --master-machine-type=c4a-standard-16 \
        --worker-machine-type=c4a-standard-16 \
        --engine=lightning \
        --properties='spark:spark.dataproc.lightningEngine.runtime=native'
    

API

Senden Sie eine clusters.create-Anfrage, um einen Cluster mit aktivierter Lightning Engine zu erstellen. Weitere Informationen finden Sie unter Cluster mit der REST API erstellen.

  1. Legen Sie im Anfragetext das Feld engine auf LIGHTNING fest.

    {
      "projectId": "PROJECT_ID",
      "clusterName": "CLUSTER_NAME",
      "config": {
        "engine": "LIGHTNING",
        "gceClusterConfig": {},
        "softwareConfig": {
          "imageVersion": "2.3"
        }
      }
    }
    
  2. Optional: Wenn Sie die native Ausführungslaufzeit standardmäßig für alle Jobs aktivieren möchten, fügen Sie das Attribut spark:spark.dataproc.lightningEngine.runtime hinzu.

    {
      "projectId": "PROJECT_ID",
      "clusterName": "CLUSTER_NAME",
      "config": {
        "engine": "LIGHTNING",
        "gceClusterConfig": {},
        "softwareConfig": {
          "imageVersion": "2.3",
          "properties": {
            "spark:spark.dataproc.lightningEngine.runtime": "native"
          }
        }
      }
    }
    

Python

  1. Wenn Sie einen Cluster mit aktivierter Lightning Engine erstellen möchten, verwenden Sie die Methode create_cluster und setzen Sie das Feld engine in der Clusterkonfiguration auf LIGHTNING. Weitere Informationen finden Sie unter Cluster mit Python erstellen.

    from google.cloud import dataproc_v1
    
    def create_lightning_cluster(project_id, region, cluster_name):
        client_options = {"api_endpoint": f"{region}-dataproc.googleapis.com:443"}
        cluster_client = dataproc_v1.ClusterControllerClient(client_options=client_options)
    
        cluster = {
            "project_id": project_id,
            "cluster_name": cluster_name,
            "config": {
                "engine": "LIGHTNING",
                "software_config": {
                    "image_version": "2.3-debian12",
                },
            }
        }
    
        operation = cluster_client.create_cluster(
            project_id=project_id,
            region=region,
            cluster=cluster
        )
        result = operation.result()
        print(f"Cluster created successfully: {result.cluster_name}")
    
  2. Optional: Wenn Sie die native Ausführungslaufzeit standardmäßig für Spark-Jobs aktivieren möchten, fügen Sie das Attribut spark:spark.dataproc.lightningEngine.runtime hinzu.

    from google.cloud import dataproc_v1
    
    def create_lightning_native_cluster(project_id, region, cluster_name):
        client_options = {"api_endpoint": f"{region}-dataproc.googleapis.com:443"}
        cluster_client = dataproc_v1.ClusterControllerClient(client_options=client_options)
    
        cluster = {
            "project_id": project_id,
            "cluster_name": cluster_name,
            "config": {
                "engine": "LIGHTNING",
                "software_config": {
                    "image_version": "2.3-debian12",
                    "properties": {
                        "spark:spark.dataproc.lightningEngine.runtime": "native"
                    }
                }
            }
        }
    
        operation = cluster_client.create_cluster(
            project_id=project_id,
            region=region,
            cluster=cluster
        )
        result = operation.result()
        print(f"Cluster created successfully: {result.cluster_name}")
    

Terraform

  1. Legen Sie in der Ressourcenkonfiguration google_dataproc_cluster das Argument engine auf LIGHTNING fest.
  2. Weitere Informationen und erweiterte Optionen finden Sie in der offiziellen Terraform-Dokumentation für die Ressource google_dataproc_cluster.

Cluster-Engine prüfen

Console

  1. Rufen Sie in der Google Cloud Console die Seite Clusterdetails auf.
  2. Prüfen Sie, ob der Wert Lightning Engine im Feld Engine aufgeführt ist.
  3. Wenn Sie die Ausführung nativer Abfragen aktiviert haben, prüfen Sie, ob native im Feld Native Ausführung aufgeführt ist.

gcloud

  1. Führen Sie den Befehl gcloud dataproc clusters describe aus, um die Engine und die NQE (falls aktiviert) zu prüfen:

    gcloud dataproc clusters describe CLUSTER_NAME --project=PROJECT_ID --region=REGION
    
  2. Prüfen Sie die Ausgabe auf die Attribute engine und lightningEngine.runtime:

    clusterName: lightning-engine-cluster
    engine: lightningEngine
    lightningEngine.runtime: native
    

Job mit Lightning Engine senden

Wenn Sie die Lightning Engine beim Erstellen eines Clusters aktiviert haben, ist sie standardmäßig für den Job aktiviert, wenn Sie einen Spark-Job an den Cluster senden.

Ausführung nativer Abfragen für einen Job aktivieren

Wenn Sie die Ausführung nativer Abfragen (Native Query Execution, NQE) beim Erstellen eines Lightning Engine-Clusters aktiviert haben, werden alle Spark-Jobs mit aktivierter NQE ausgeführt, es sei denn, Sie deaktivieren NQE für einen bestimmten Job.

Wenn Sie NQE beim Erstellen des Lightning Engine-Clusters nicht aktiviert haben, können Sie NQE für einen Job aktivieren, wenn Sie den Job einreichen, wie in den folgenden Beispielen gezeigt.

gcloud

Wenn Sie die Ausführung nativer Abfragen beim Einreichen eines Spark-Jobs aktivieren möchten, fügen Sie das Attribut spark.dataproc.lightningEngine.runtime=native hinzu:

gcloud dataproc jobs submit spark \
    --cluster=CLUSTER_NAME \
    --region=REGION \
    --properties=spark.dataproc.lightningEngine.runtime=native \
    -- ...

API

Wenn Sie die Ausführung nativer Abfragen beim Senden eines Spark-Jobs aktivieren möchten, fügen Sie das Attribut spark.dataproc.lightningEngine.runtime in Ihre Anfrage ein:

{
  "job":{
    "placement":{
      "clusterName": ...
    },
    "sparkJob":{
      "mainClass": ...,
      "properties":{
         "spark.dataproc.lightningEngine.runtime":"native"
      }
    }
  }
}

Ausführung nativer Abfragen für einen Job deaktivieren

Wenn Sie die Ausführung nativer Abfragen (Native Query Execution, NQE) beim Erstellen eines Lightning Engine-Clusters aktiviert haben, werden alle Spark-Jobs mit aktivierter NQE ausgeführt, es sei denn, Sie deaktivieren NQE für einen bestimmten Job.

Sie können die NQE für einen bestimmten Spark-Job deaktivieren, wenn Sie den Job einreichen, wie in den folgenden Beispielen gezeigt.

gcloud

Wenn Sie die Ausführung nativer Abfragen deaktivieren möchten, wenn Sie einen Spark-Job an einen Lightning Engine-Cluster senden, fügen Sie das Attribut spark.dataproc.lightningEngine.runtime=default hinzu:

gcloud dataproc jobs submit spark \
    --cluster=CLUSTER_NAME \
    --region=REGION \
    --properties=spark.dataproc.lightningEngine.runtime=default \
    -- ...

API

Wenn Sie die Ausführung nativer Abfragen deaktivieren möchten, wenn Sie einen Spark-Job an einen Lightning Engine-Cluster senden, fügen Sie das Attribut spark.dataproc.lightningEngine.runtime=default hinzu:

{
  "job":{
    "placement":{
      "clusterName": ...
    },
    "sparkJob":{
      "mainClass": ...,
      "properties":{
         "spark.dataproc.lightningEngine.runtime":"default"
      }
    }
  }
}

Ausführung nativer Abfragen für einen Job prüfen

Nachdem Sie einen Job an einen Lightning Engine-Cluster gesendet haben, können Sie prüfen, ob die Ausführung nativer Abfragen für den Job aktiviert ist.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Jobs auf.
  2. Klicken Sie auf die Job-ID, um die Seite Jobdetails zu öffnen.
  3. Prüfen Sie, ob native im Feld Native Ausführung aufgeführt ist.

gcloud

  1. Führen Sie den Befehl gcloud dataproc jobs describe aus:

    gcloud dataproc jobs describe JOB_ID --project=PROJECT_ID --region=REGION
    
  2. Prüfen Sie die Ausgabe für lightningEngine.runtime im Abschnitt Properties:

    lightningEngine.runtime: native
    

Konfigurationsparameter

In der folgenden Tabelle sind die wichtigsten Konfigurationsparameter für die Lightning Engine und die native Abfrageausführung zusammengefasst.

Parametername Beschreibung Anwendbare Engine(s) Standardwert Standardwert (Lightning Engine) Vom Nutzer überschreibbar (Jobebene) Umfang
--engine Einstellung auf Clusterebene, um die Engine während der Clustererstellung auszuwählen. Clusterweit default lightning Nein Cluster
spark:spark.dataproc.lightningEngine.runtime Einstellung auf Clusterebene, um die Lightning-Engine-Laufzeit während der Clustererstellung auszuwählen. Nur Lightning default default Nein Cluster
spark.dataproc.lightningEngine.runtime Aktiviert oder deaktiviert die Ausführung nativer Abfragen (Native Query Execution, NQE) in der Lightning Engine. Nur Lightning default default Ja. Kann auf native oder default festgelegt werden. Job

Beschränkungen

Das Aktivieren der nativen Abfrageausführung in den folgenden Szenarien kann zu Ausnahmen, Spark-Inkompatibilitäten oder einem Fallback der Arbeitslast auf die Standard-Spark-Engine führen.

Fallback-Zustände

Die native Abfrageausführung in den folgenden Szenarien kann dazu führen, dass die Arbeitslast auf die Spark-Ausführungs-Engine zurückgreift:

  • ANSI: Wenn der ANSI-Modus aktiviert ist, wird die Ausführung auf Spark zurückgesetzt.
  • Modus mit Berücksichtigung der Groß-/Kleinschreibung: Die native Abfrageausführung unterstützt nur den Spark-Standardmodus ohne Berücksichtigung der Groß-/Kleinschreibung. Wenn der Modus für die Berücksichtigung der Groß-/Kleinschreibung aktiviert ist, können falsche Ergebnisse auftreten.
  • Scan partitionierter Tabellen: Die native Abfrageausführung unterstützt den Scan partitionierter Tabellen nur, wenn der Pfad die Partitionsinformationen enthält. Andernfalls wird die Arbeitslast auf die Spark-Ausführungs-Engine zurückgesetzt.

Inkompatibles Verhalten

In den folgenden Fällen kann es bei der Verwendung der nativen Abfrageausführung zu inkompatiblem Verhalten oder falschen Ergebnissen kommen:

  • JSON-Funktionen: Die native Abfrageausführung unterstützt Strings, die in doppelte Anführungszeichen gesetzt sind, nicht in einfache Anführungszeichen. Bei einfachen Anführungszeichen treten falsche Ergebnisse auf. Wenn Sie * im Pfad mit der Funktion get_json_object verwenden, wird NULL zurückgegeben.
  • Parquet-Lesekonfiguration:
    • Bei der nativen Abfrageausführung wird spark.files.ignoreCorruptFiles so behandelt, als wäre es auf den Standardwert false festgelegt, auch wenn es auf true festgelegt ist.
    • Bei der nativen Abfrageausführung wird spark.sql.parquet.datetimeRebaseModeInRead ignoriert und nur der Inhalt der Parquet-Datei zurückgegeben. Unterschiede zwischen dem alten Hybridkalender und dem proleptischen gregorianischen Kalender werden nicht berücksichtigt. Spark-Ergebnisse können abweichen.
  • NaN: nicht unterstützt. Unerwartete Ergebnisse können beispielsweise auftreten, wenn Sie NaN in einem numerischen Vergleich verwenden.
  • Spaltenbasiertes Lesen in Spark: Es kann ein schwerwiegender Fehler auftreten, da der spaltenbasierte Spark-Vektor nicht mit der nativen Abfrageausführung kompatibel ist.
  • Spill: Wenn Sie die Anzahl der Shuffle-Partitionen auf eine große Zahl festlegen, kann die Funktion „Spill-to-Disk“ einen OutOfMemoryException auslösen. In diesem Fall kann die Ausnahme durch Reduzieren der Anzahl der Partitionen beseitigt werden.

Nächste Schritte