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?
- U voert
databricks auth loginuit in de terminal. - Er opent een browser waar u inlogt met uw organisatie-account.
- 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 loginuitgevoerd om een schone tokensessie te starten.
Waarom?
- Corrupte cache: Het bestand
token-cache.jsonbevatte 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 '}'ofFailed 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.pyin 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 loggingschrijft, zoekt Python eerst in de huidige map voordat het de standaardmodules controleert. - Gevolg: Uw eigen
logging.pywerd geladen in plaats van de systeemmodule, waardoordbutils(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
setuptoolsenlooseversion. - We voegden deze imports bovenaan het script toe:
Waarom?
- Python 3.14: Sinds Python 3.12 is de module
distutilsverwijderd (deze was verouderd). - PySpark-afhankelijkheid: PySpark (en dus Databricks Connect) gebruikt nog steeds
distutilsvoor versiecontroles. - Oplossing:
setuptoolsbiedt een backwards-compatible vervanging voordistutils, 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_idexpliciet toegevoegd aan de configuratie in.databrickscfg:
Waarom?
- Databricks Connect moet weten naar welk cluster het uw Python-code moet sturen.
- Zonder
cluster_idweet 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?
- Ga naar de Databricks-omgeving in uw browser.
- Klik op Clusters in het linker menu.
- Selecteer uw cluster en kopieer het ID uit de URL (bijv.
1234-567890-abc123).
Reacties
Een reactie posten