Databricks connect werkend krijgen

1. Veilig inloggen zonder tokens (OAuth)

Wat deden we?

  • We hebben een configuratiebestand (.databrickscfg) aangemaakt in uw gebruikersmap.
  • Hierin staat auth_type = databricks-cli, waardoor u niet hoeft in te loggen met een onveilig Persoonlijk Toegangstoken (PAT).

Waarom?

  • PAT’s zijn onveilig: Ze werken als wachtwoorden en kunnen worden gestolen of misbruikt.
  • Browser-inloggen (SSO): U logt in via de browser met uw organisatie-account (bijv. via Microsoft Azure AD). Dit is veiliger omdat:
    • Uw sessie verloopt automatisch (geen permanente tokens).
    • De Databricks CLI regelt de tokens op de achtergrond (u hoeft ze niet handmatig te beheren).
    • Uw organisatie kan Multi-Factor Authentication (MFA) afdwingen voor extra beveiliging.

Hoe werkt het?

  1. U voert databricks auth login uit in de terminal.
  2. Er opent een browser waar u inlogt met uw organisatie-account.
  3. De CLI slaat een tijdelijk token op in ~/.databricks/token-cache.json (dit bestand wordt automatisch vernieuwd).

2. Lokale CLI-cache opgeschoond

Wat deden we?

  • We hebben een beschadigd bestand (token-cache.json) verwijderd uit de verborgen .databricks-map.
  • Daarna hebben we opnieuw databricks auth login uitgevoerd om een schone tokensessie te starten.

Waarom?

  • Corrupte cache: Het bestand token-cache.json bevatte een fout (bijv. een verkeerd geplaatst }-teken). Hierdoor kon de CLI geen geldig token lezen.
  • Oplossing: Door het bestand te verwijderen en opnieuw in te loggen, wordt een nieuw, correct token aangemaakt.

Hoe herkent u dit probleem?

  • Foutmelding: invalid character '}' of Failed to parse token cache.
  • Oplossing: Verwijder het bestand en log opnieuw in.

3. Conflicterende scriptnamen opgelost

Wat deden we?

  • We ontdekten dat er een eigen bestand genaamd logging.py in uw projectmap stond.
  • Python laadde dit bestand per ongeluk in plaats van de officiĆ«le logging-module van Python zelf.

Waarom?

  • Python’s import-systeem: Als u import logging schrijft, zoekt Python eerst in de huidige map voordat het de standaardmodules controleert.
  • Gevolg: Uw eigen logging.py werd geladen in plaats van de systeemmodule, waardoor dbutils (een Databricks-specifiek hulpmiddel) niet werkte.

Oplossing:

  • Hernoem uw bestand (bijv. naar mijn_logging.py) of verplaats het naar een andere map.
  • Zo voorkomt u dat Python het per ongeluk importeert.

4. Python-compatibiliteit hersteld (distutils)

Wat deden we?

  • We installeerden de bibliotheken setuptools en looseversion.
  • We voegden deze imports bovenaan het script toe:
    python
    import setuptools # Vervangt distutils from distutils.version import LooseVersion # Nabootsing van oude functionaliteit

Waarom?

  • Python 3.14: Sinds Python 3.12 is de module distutils verwijderd (deze was verouderd).
  • PySpark-afhankelijkheid: PySpark (en dus Databricks Connect) gebruikt nog steeds distutils voor versiecontroles.
  • Oplossing: setuptools biedt een backwards-compatible vervanging voor distutils, zodat PySpark blijft werken.

Alternatief:

  • Gebruik een oudere Python-versie (bijv. 3.10 of 3.11) als u geen workaround wilt.

5. Databricks Connect gekoppeld aan de rekenkracht

Wat deden we?

  • We hebben het cluster_id expliciet toegevoegd aan de configuratie in .databrickscfg:
    ini
    [DEFAULT] host = https://<uw-workspace>.azuredatabricks.net auth_type = databricks-cli cluster_id = <uw-cluster-id> # Bijv. "1234-567890-abc123"

Waarom?

  • Databricks Connect moet weten naar welk cluster het uw Python-code moet sturen.
  • Zonder cluster_id weet het niet waar de berekeningen moeten worden uitgevoerd.
  • Voordelen:
    • Uw lokale Python-code draait op het krachtige Databricks-cluster (in plaats van op uw laptop).
    • U kunt Spark-opdrachten uitvoeren alsof u in een Databricks-notebook werkt.

Hoe vindt u het cluster_id?

  1. Ga naar de Databricks-omgeving in uw browser.
  2. Klik op Clusters in het linker menu.
  3. Selecteer uw cluster en kopieer het ID uit de URL (bijv. 1234-567890-abc123).

Reacties

Populaire posts van deze blog

vsc inrichten op een windows omgeving stap 1

vsc inrichten op een windows omgeving stap 2