Sdílet prostřednictvím


Řešení potíží s 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 Databricks Connect pro Python. Databricks Connect umožňuje připojit k clusterům Azure Databricks oblíbená vývojová prostředí IDE, servery poznámkových bloků a vlastní aplikace. Podívejte se, co je 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í Pythonu

Zkontrolujte, zda verze Pythonu, kterou používáte lokálně, má alespoň stejnou podverzi jako verze na clusteru (například 3.10.11 oproti 3.10.10 je v pořádku, 3.10 oproti 3.9 není v pořádku). Podporované verze najdete v matici podpory verzí .

Pokud máte místně nainstalovaných více verzí Pythonu, ujistěte se, že Databricks Connect používá správnou verzi, a to nastavením PYSPARK_PYTHON proměnné prostředí (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 Pythonu. 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í Pythonu nainstalované pyspark, před instalací databricks-connectse 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 virtuální prostředí Pythonu k vzdálenému vývoji s databricks-connect ve vašem integrovaném vývojovém prostředí a místním testování s pyspark v terminálu. Databricks doporučuje používat Databricks Connect pro Python s bezserverovým výpočetním prostředím pro testování 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 připojovací řetězec následujícím postupem:

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 spark-shell, je také možné, že pip3 install automaticky nenastavil proměnnou PATH a budete muset přidat instalační adresář bin do proměnné 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 ve Windows je nesprávná.

Pokud používáte Databricks Connect ve 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.