Data Engineering
Airflow Spark Connector: Failed to poll for the driver status 10 times
Obwohl die Spark-Verbindung korrekt konfiguriert ist, kann Airflow nach einem abgeschlossenen Spark-Submit den finalen Driver-Status nicht abrufen. Dieses Problem entsteht, weil Spark im Standalone-Modus zwei unterschiedliche Endpunkte bereitstellt, während der SparkSubmitOperator in Airflow nur eine einzige conn_id unterstützt. Systemkonfiguration Dieser…
Konfiguration des Meta Stores in Apache Spark
In unserem Open-Source Framework, welches Apache Spark für die Datenverarbeitung, Delta Lake für das Datenmanagement und MinIO als S3-Objektspeicher nutzt, wollten wir einen Hive Metastore integrieren. Die Integration stellte sich jedoch als komplexer heraus als erwartet, einfach weil uns ein…
Spark Exasol connector – java.sql.SQLException: [ERROR] Connection String unterstützt das Argument (workerID) nicht.
Der aktuelle exasol Connector (2.1.6) ist nicht kompatibel mit dem aktuellen exasol jdbc Treiber (24.1.1) Kontext Wir haben eine Spark-Datenverarbeitungspipeline, die den Exasol Connector in der Version 1.4 und einen JDBC-Treiber in der Version 7 verwendet. Alles funktionierte einwandfrei, also…
Subtiler Unterschied zwischen einem Dockerfile und einer dockercompose Datei – Variablen im Entrypoint Direktiv
TLDR: Variablen in Entrypoints sollten escaped werden. Dies kann durch die Verwendung eines zweiten $ erreicht werden. Hintergrund Beim Einrichten eines Spark Thrift Servers stieß ich auf ein – im Nachhinein betrachtet – offensichtliches Versehen. Ich würde immer den folgenden…
Spark – Fehler mit UTF8 Kodierung im Docker Image
Im Deutschen gibt es Sonderzeichen, die als Umlaute bekannt sind, unter anderem z.B. ä, ü, ö. Wenn das System nicht korrekt eingestellt ist, kann die Kodierung dieser Zeichen zu einem Informationsverlust führen. Sehen wir uns ein praktisches Beispiel an, bei…
Spark – java.nio.channels.UnresolvedAddressException
Eine sehr kurze Beschreibung des folgenden Fehlers, der anscheinend auch bei dem folgendem Benutzer aufgetreten ist und dokumentiert wurde (github). Dieser Fehlercode kann in verschiedenen Szenarien auftreten. In meiner speziellen Situation war die Lösung jedoch uim Glück ganz simpel Setup…
Exasol – object XXX not found
TLDR: Indentifiers in Exasol werden intern in Großbuchstaben gespeichert. Attribute in der Selektanweisung sollten in Anführungszeichen gesetzt werden. Beobachtung In Exasol habe ich eine benutzerdefinierte Python-Funktion erstellt und zwar wie folgt: Dann versuchte ich, die UDF in einer Select-Anweisung wie…
Python – Pass by object: Praktische Fallstricke
Innerhalb einer Schleife habe ich mehrfach auf ein Objekt in einem Dictionary zugegriffen, es transformiert und visualisiert. Die Absicht war, dass alle Transformationen voneinander isoliert bleiben sollten. Was aber tatsächlich passierte, war, dass sich diese Transformationen aufgrund von Pythons “Pass…
Doppelte Schlüssel bei der Erstellung einer Json aus einem Python Dict
TLDR: Ein dictionary in json behandelt alle Schlüssel als String, während ein Python Dictionay nicht nur zwischen dem Inhalt, sondern auch dem Datentyp unterscheidet (siehe Stackoverflow). Wenn man ein Dictionary in einem json speichert und das Dictionary daraus wieder lädt,…
Superset Guest Token mit Python erstellen, um Superset Dashboard zu embedden
Das große Ziel ist es, ein Superset Dashboard in einer Webanwendung z.B. in REACT einzubetten. Um das zu erreichen, muss unter anderem ein Guest Token (Service Account) erstellt werden. Da dieser Prozess (meiner Meinung nach) nicht ganz ausreichend gut dokumentiert…





