Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga
W tym artykule opisano usługę Databricks Connect dla środowiska Databricks Runtime 13.3 LTS lub nowszego.
Ten artykuł zawiera informacje dotyczące rozwiązywania problemów z programem Databricks Connect dla języka Python. Usługa Databricks Connect umożliwia łączenie popularnych środowisk IDE, serwerów notesów i aplikacji niestandardowych z klastrami usługi Azure Databricks. Zobacz Co to jest usługa Databricks Connect?. Aby zapoznać się z wersją tego artykułu dla Scali, zobacz Troubleshooting Databricks Connect for Scala.
Błąd: StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, rozpoznawanie nazw DNS nie powiodło się lub odebrano nagłówek HTTP/2 ze statusem 500
Problem: Podczas próby uruchomienia kodu za pomocą usługi Databricks Connect są wyświetlane komunikaty o błędach zawierające ciągi, takie jak StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, DNS resolution failedlub Received http2 header with status: 500.
Możliwa przyczyna: usługa Databricks Connect nie może nawiązać połączenia z klastrem.
Zalecane rozwiązania:
- Upewnij się, że nazwa wystąpienia obszaru roboczego jest poprawna. Jeśli używasz zmiennych środowiskowych, sprawdź, czy powiązana zmienna środowiskowa jest dostępna i poprawna na lokalnym komputerze deweloperskim.
- Upewnij się, że identyfikator klastra jest poprawny. Jeśli używasz zmiennych środowiskowych, sprawdź, czy powiązana zmienna środowiskowa jest dostępna i poprawna na lokalnym komputerze deweloperskim.
- Sprawdź, aby upewnić się, że Twój klaster ma prawidłową niestandardową wersję klastra, która jest zgodna z Databricks Connect.
Niezgodność wersji języka Python
Sprawdź, że używana lokalnie wersja języka Python ma co najmniej tę samą wersję podrzędną co wersja na klastrze (na przykład 3.10.11 versus 3.10.10 jest OK, 3.10 versus 3.9 nie jest OK). Aby uzyskać informacje o obsługiwanych wersjach, zobacz macierz obsługi wersji.
Jeśli masz zainstalowane lokalnie wiele wersji języka Python, upewnij się, że program Databricks Connect używa odpowiedniej wersji, ustawiając zmienną PYSPARK_PYTHON środowiskową (na przykład PYSPARK_PYTHON=python3).
Sprzeczne instalacje PySpark
Pakiet databricks-connect powoduje konflikt z narzędziem PySpark. Zainstalowanie obu tych elementów spowoduje błędy podczas inicjowania kontekstu platformy Spark w języku Python. Może to objawiać się na kilka sposobów, w tym błędy "uszkodzenie strumienia" lub "Nie znaleziono klasy". Jeśli masz pyspark zainstalowany w środowisku języka Python, przed zainstalowaniem databricks-connect, upewnij się, że program został odinstalowany. Po odinstalowaniu programu PySpark upewnij się, że w pełni zainstaluj pakiet 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.
Usługa Databricks Connect i PySpark wzajemnie się wykluczają, ale można używać środowisk wirtualnych języka Python do zdalnego tworzenia z databricks-connect w IDE oraz lokalnego testowania z pyspark w terminalu. Jednak usługa Databricks zaleca używanie programu Databricks Connect dla języka Python z bezserwerowymi obliczeniami ze względu na następujące przyczyny:
- Środowisko Databricks Runtime, a tym samym
databricks-connect, zawiera funkcje, które nie są dostępne w systemie operacyjnympyspark. - Testowanie z użyciem
databricks-connecti technologii bezserwerowej jest szybsze niż testowanie przy użyciupysparklokalnie. - Integracje z Unity Catalog nie są dostępne w programie
pyspark, więc lokalnie, podczas testowania przy użyciupyspark, żadne uprawnienia nie będą wymuszane. - W przypadku testowania kompleksowej zależności zewnętrznej, takiej jak obliczenia usługi Databricks, testy integracji, w przeciwieństwie do testów jednostkowych, są najlepsze.
Jeśli nadal zdecydujesz się nawiązać połączenie z lokalnym klastrem Spark, możesz określić parametry połączenia przy użyciu następujących elementów:
connection_string = "sc://localhost"
DatabricksSession.builder.remote(connection_string).getOrCreate()
Konflikt lub brak wpisu PATH dla plików binarnych
Istnieje możliwość, że PATH jest skonfigurowany tak, aby polecenia, takie jak spark-shell, uruchamiały inne, wcześniej zainstalowane pliki binarne zamiast tego dostarczonego z Databricks Connect. Upewnij się, że pliki binarne usługi Databricks Connect mają pierwszeństwo lub usuń zainstalowane wcześniej pliki binarne.
Jeśli nie możesz uruchamiać poleceń, takich jak spark-shell, możliwe, że zmienna środowiskowa PATH nie została automatycznie skonfigurowana przez pip3 install i musisz ręcznie dodać katalog instalacji bin do swojej ścieżki PATH. Możesz użyć usługi Databricks Connect z środowiskami IDE, nawet jeśli nie jest to skonfigurowane.
Nazwa pliku, nazwa katalogu lub składnia etykiety woluminu jest niepoprawna w systemie Windows
Jeśli używasz usługi Databricks Connect w systemie Windows i zobacz:
The filename, directory name, or volume label syntax is incorrect.
Program Databricks Connect został zainstalowany w katalogu ze spacją w ścieżce. Można to obejść, instalując do ścieżki katalogu bez spacji lub konfigurując ścieżkę przy użyciu krótkiej formy nazwy.