Řešení potíží se službou Databricks Connect pro Python

Poznámka:

Tento článek popisuje Databricks Connect pro systém Databricks Runtime 13.3 LTS a vyšších verzí.

Tento článek obsahuje informace o řešení potíží pro Službu Databricks Connect pro Python. Databricks Connect umožňuje připojit oblíbená prostředí IDE, servery poznámkových bloků a vlastní aplikace ke clusterům Azure Databricks. Viz Databricks Connect. Informace o verzi Scala tohoto článku najdete v tématu Řešení potíží s Databricks Connect pro Scala.

Chyba: StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, rozlišení DNS selhalo nebo přijata hlavička HTTP2 se stavem 500

Problém: Při pokusu o spuštění kódu pomocí databricks Connect se zobrazí chybové zprávy obsahující řetězce, jako jsou StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, DNS resolution failednebo Received http2 header with status: 500.

Možná příčina: Databricks Connect se nemůže spojit s vaším clusterem.

Doporučená řešení:

  • Zkontrolujte, jestli je název instance pracovního prostoru správný. Pokud používáte proměnné prostředí, zkontrolujte, jestli je související proměnná prostředí dostupná a správná na místním vývojovém počítači.
  • Zkontrolujte, jestli je ID clusteru správné. Pokud používáte proměnné prostředí, zkontrolujte, jestli je související proměnná prostředí dostupná a správná na místním vývojovém počítači.
  • Zkontrolujte, jestli má váš cluster správnou vlastní verzi clusteru, která je kompatibilní s Databricks Connect.

Neshoda verzí Python

Zkontrolujte, jestli verze Python, kterou používáte místně, má minimálně stejnou podverzi jako verze v clusteru (například 3.10.11 versus 3.10.10 je OK, 3.10 versus 3.9 není). Podporované verze najdete v matici podpory verzí .

Pokud máte místně nainstalovaných více verzí Python, ujistěte se, že databricks Connect používá správnou verzi, a to nastavením proměnné prostředí PYSPARK_PYTHON (například PYSPARK_PYTHON=python3).

Konfliktní instalace PySpark

Balíček databricks-connect je v konfliktu s PySpark. Obě instalace způsobí chyby při inicializaci kontextu Sparku v Python. To se může projevit několika způsoby, včetně chyb "stream poškozený" nebo "třída nenalezena". Pokud máte v prostředí Python nainstalovaný pyspark, před instalací databricks-connect se ujistěte, že je odinstalovaný. Po odinstalaci PySpark nezapomeňte plně znovu nainstalovat balíček Databricks Connect:

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

Databricks Connect a PySpark se vzájemně vylučují, ale je možné použít Python virtuální prostředí k vzdálenému vývoji pomocí databricks-connect v integrovaném vývojovém prostředí a místním testování s pyspark v terminálu. Databricks ale doporučuje používat Databricks Connect pro Python s výpočetními prostředky bezserverového výpočetního prostředí pro všechny účely testování, a to z následujících důvodů:

  • Databricks Runtime, a tedy databricks-connect, obsahuje funkce, které nejsou k dispozici v open-source softwaru pyspark.
  • Testování pomocí databricks-connect a bez serveru je rychlejší než testování pomocí pyspark místně.
  • Integrace katalogu Unity nejsou v pysparkk dispozici, takže při testování pomocí pyspark místně nebudou vynucena žádná oprávnění.
  • Pro end-to-end testování s externí závislostí, jako je Databricks, jsou integrační testy na rozdíl od jednotkových testů nejlepší.

Pokud se stále rozhodnete připojit k místnímu clusteru Spark, můžete zadat connection string pomocí následujícího příkazu:

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

Konfliktní nebo chybějící PATH položka pro binární soubory

Je možné, že je vaše cesta nakonfigurovaná tak, aby příkazy spark-shell jako spouštěly některé jiné dříve nainstalované binární soubory místo těch, které jsou součástí Databricks Connect. Měli byste se ujistit, že binární soubory Databricks Connect mají přednost, nebo odeberte dříve nainstalované binární soubory.

Pokud nemůžete spouštět příkazy, jako je spark-shell, je také možné, že PATH nebyla automaticky nastavena pip3 install a budete muset přidat instalační adresář bin do PATH ručně. Databricks Connect s IDEs je možné použít i v případě, že to není nastavené.

Syntaxe názvu souboru, názvu adresáře nebo popisku svazku není ve Windows správná.

Pokud používáte Databricks Connect na Windows a podívejte se na:

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

Databricks Connect se nainstaloval do adresáře s místem ve vaší cestě. Můžete to obejít tak, že buď nainstalujete do adresáře bez mezer, nebo nakonfigurujete cestu pomocí zkrácené verze názvu.