Megosztás:


A Databricks Connect for Python hibaelhárítása

Feljegyzés

Ez a cikk a Databricks Runtime 13.3 LTS-hez készült Databricks Connectet ismerteti.

Ez a cikk a Pythonhoz készült Databricks Connect hibaelhárítási információit ismerteti. A Databricks Connect lehetővé teszi népszerű IDE-k, notebook-kiszolgálók és saját alkalmazások csatlakoztatását az Azure Databricks-fürtökhöz. Lásd : Mi az a Databricks Connect?. A cikk Scala-verziójával kapcsolatban lásd a Scalához készült Databricks Connect hibaelhárítását.

Hiba: StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, DNS-feloldás nem sikerült, vagy 500-os állapotú HTTP2-fejléc érkezett

Probléma: Amikor a Databricks Connecttel próbál kódot futtatni, hibaüzenet jelenik meg, amely sztringeket tartalmaz, például StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, DNS resolution failedvagy Received http2 header with status: 500.

Lehetséges ok: A Databricks Connect nem éri el a fürtöt (cluster).

Ajánlott megoldások:

  • Ellenőrizze, hogy helyes-e a munkaterület példány neve. Ha környezeti változókat használ, ellenőrizze, hogy a kapcsolódó környezeti változó elérhető-e, és helyes-e a helyi fejlesztőgépen.
  • Ellenőrizze, hogy a klaszterazonosító helyes-e. Ha környezeti változókat használ, ellenőrizze, hogy a kapcsolódó környezeti változó elérhető-e, és helyes-e a helyi fejlesztőgépen.
  • Ellenőrizze, hogy a fürt rendelkezik-e a Databricks Connecttel kompatibilis egyéni fürtverzióval.

Python-verzióeltérés

Ellenőrizze, hogy a helyileg használt Python-verzió alverziója legalább ugyanaz-e, mint a fürtön lévő verzió (3.10.11 szemben 3.10.10 rendben van, 3.10 szemben 3.9 viszont nem). A támogatott verziókért tekintse meg a verziótámogatási mátrixot.

Ha több Python-verzió van telepítve helyileg, győződjön meg arról, hogy a Databricks Connect a megfelelőt használja a PYSPARK_PYTHON környezeti változó beállításával (például PYSPARK_PYTHON=python3).

Ütköző PySpark-telepítések

A databricks-connect csomag ütközik a PySparkkal. Ha mindkettő telepítve van, az hibát fog okozni a Spark-környezet Pythonban való inicializálása során. Ez többféleképpen is nyilvánulhat meg, beleértve a "sérült stream" vagy a "nem található osztály" hibákat. Mielőtt telepítené a(z) pyspark-t, győződjön meg arról, hogy a(z) databricks-connect nincs telepítve a Python-környezetben. A PySpark eltávolítása után mindenképpen telepítse újra a Databricks Connect csomagot:

pip3 uninstall pyspark
pip3 uninstall databricks-connect
pip3 install --upgrade "databricks-connect==14.0.*"  # or X.Y.* to match your specific cluster version.

A Databricks Connect és a PySpark kölcsönösen kizárják egymást, de a Python virtuális környezetek használatával távoli fejlesztéseket databricks-connect hajthat végre az IDE-ben, és helyi tesztelést pyspark hajthat végre egy terminálon. A Databricks azonban azt javasolja, hogy a Databricks Connect for Pythont kiszolgáló nélküli számítással használja az összes teszteléshez, az alábbi okokból:

  • A Databricks Runtime tehát databricks-connectolyan funkciókat tartalmaz, amelyek nem érhetők el az OSS-ben pyspark.
  • A databricks-connect és a kiszolgáló nélküli tesztelés gyorsabb, mint a pyspark helyi tesztelés.
  • A Unity Catalog-integrációk nem érhetők el pyspark, ezért a helyi tesztelés pyspark során nem lesznek érvényes engedélyek.
  • Az olyan külső függőségekkel, mint a Databricks compute, a végpontok közötti teszteléshez az integrációs tesztek az egységtesztekkel szemben a legjobbak.

Ha továbbra is úgy dönt, hogy helyi Spark-fürthöz csatlakozik, megadhat egy kapcsolati karakterláncot a következő módon:

connection_string = "sc://localhost"
DatabricksSession.builder.remote(connection_string).getOrCreate()

Ütköző vagy hiányzó PATH bejegyzés bináris fájlokhoz

Lehetséges, hogy a PATH úgy van konfigurálva, hogy a databricks Connect által biztosított helyett a hasonló spark-shell parancsok más, korábban telepített bináris fájlokat futtassanak. Győződjön meg arról, hogy a Databricks Connect bináris fájljai elsőbbséget élveznek, vagy eltávolítják a korábban telepített fájlokat.

Ha nem tud például spark-shell parancsokat futtatni, az is lehetséges, hogy a PATH nem lett automatikusan beállítva a pip3 install által, és manuálisan kell hozzáadnia a telepítési bin könyvtárat a PATH-hoz. A Databricks Connectet akkor is használhatja IDE-kkel, ha az nincs konfigurálva.

A fájlnév, a könyvtárnév vagy a kötetcímke szintaxisa helytelen a Windowsban

Ha Windows rendszeren használja a Databricks Connectet, és tekintse meg a következőt:

The filename, directory name, or volume label syntax is incorrect.

A Databricks Connect egy könyvtárba lett telepítve, amelyen egy szóköz van az elérési úton. Ezt úgy teheti meg, hogy szóközök nélkül telepíti a címtár elérési útját, vagy konfigurálja az elérési utat a rövid névűrlap használatával.