A Databricks Connect hibaelhárítása Pythonhoz

Feljegyzés

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

Ez a cikk hibakeresési információkat nyújt a Databricks Connect for Pythonhoz. A Databricks Connect lehetővé teszi az integrált fejlesztőkörnyezetek, notebook szerverek és egyéni alkalmazások csatlakoztatását az Azure Databricks fürtökhöz. Lásd : 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ó legalább ugyanazzal az alverzióval rendelkezik-e, mint a fürtön (például 3.10.11 szemben 3.10.10 rendben van, 3.10 szemben 3.9 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, hibákat fog okozni a Spark-környezet inicializálásakor a Pythonban. 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. Ha pyspark van telepítve a Python környezetben, a telepítés előtt távolítsa el a databricks-connect. 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 lehetséges Python virtuális környezetek használatával távoli fejlesztést végezni az IDE-ben databricks-connect-vel és helyi tesztelést a terminálban pyspark-vel. A Databricks azonban azt javasolja, hogy a Databricks Connectet Python használja kiszolgáló nélküli számítással minden 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 egy helyi Spark-fürthöz csatlakozik, megadhat egy kapcsolati karakterláncot az alábbi 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 Windows

Ha a Databricks Connectet használja Windows alatt, és a következő hibaüzenetet látja:

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.