Bagikan melalui


Pemecahan Masalah Databricks Connect untuk Python

Catatan

Artikel ini membahas Databricks Connect untuk Databricks Runtime 13.3 LTS ke atas.

Artikel ini menyediakan informasi pemecahan masalah untuk Databricks Connect untuk Python. Databricks Connect memungkinkan Anda menyambungkan IDE populer, server notebook, dan aplikasi kustom ke kluster Azure Databricks. Lihat Apa itu Databricks Connect?. Untuk versi Scala artikel ini, lihat Pemecahan Masalah Databricks Connect untuk Scala.

Kesalahan: StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, resolusi DNS gagal, atau Header http2 diterima dengan status 500

Masalah: Ketika Anda mencoba menjalankan kode dengan Databricks Connect, Anda mendapatkan pesan kesalahan yang berisi string seperti StatusCode.UNAVAILABLE, StatusCode.UNKNOWN, DNS resolution failed, atau Received http2 header with status: 500.

Kemungkinan penyebab: Databricks Connect tidak dapat menjangkau kluster Anda.

Solusi yang direkomendasikan:

  • Periksa untuk memastikan bahwa nama instans ruang kerja Anda sudah benar. Jika Anda menggunakan variabel lingkungan, periksa untuk memastikan variabel lingkungan terkait tersedia dan benar di komputer pengembangan lokal Anda.
  • Periksa untuk memastikan bahwa ID kluster Anda sudah benar. Jika Anda menggunakan variabel lingkungan, periksa untuk memastikan variabel lingkungan terkait tersedia dan benar di komputer pengembangan lokal Anda.
  • Periksa untuk memastikan bahwa kluster Anda memiliki versi kluster kustom yang benar yang kompatibel dengan Databricks Connect.

Ketidakcocokan versi Python

Periksa versi Python yang Anda gunakan secara lokal memiliki setidaknya rilis minor yang sama dengan versi pada kluster (misalnya, 3.10.11 versus 3.10.10 ok, 3.10 versus 3.9 tidak). Untuk versi yang didukung, lihat matriks dukungan versi .

Jika Anda memiliki beberapa versi Python yang dipasang secara lokal, pastikan bahwa Databricks Connect menggunakan yang benar dengan mengatur PYSPARK_PYTHON variabel lingkungan (misalnya, PYSPARK_PYTHON=python3).

Penginstalan PySpark yang bertentangan

databricks-connectPaket berkonflik dengan PySpark. Setelah keduanya dipasang akan menyebabkan kesalahan saat menginsialisasi konteks Spark di Python. Ini dapat bermanifestasi dalam beberapa cara, termasuk kesalahan "stream terkorup" atau "kelas tidak ditemukan". Jika pyspark sudah terpasang di lingkungan Python Anda, pastikan untuk menghapusnya sebelum menginstal databricks-connect. Setelah menghapus pemasangan PySpark, pastikan untuk memasang ulang paket Koneksi Databricks sepenuhnya:

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 dan PySpark saling eksklusif, tetapi dimungkinkan untuk menggunakan lingkungan virtual Python untuk melakukan pengembangan jarak jauh dengan databricks-connect di IDE Anda dan pengujian lokal dengan pyspark di terminal. Namun, Databricks merekomendasikan agar Anda menggunakan Databricks Connect for Python dengan komputasi tanpa server untuk semua pengujian, karena alasan berikut:

  • Databricks Runtime, dan karenanya databricks-connect, berisi fitur yang tidak tersedia di OSS pyspark.
  • Pengujian dengan databricks-connect dan tanpa server lebih cepat daripada pengujian menggunakan pyspark secara lokal.
  • Integrasi Katalog Unity tidak tersedia di pyspark, sehingga tidak akan ada izin yang diberlakukan saat Anda menguji menggunakan pyspark secara lokal.
  • Untuk pengujian end-to-end dengan dependensi eksternal seperti komputasi Databricks, pengujian integrasi lebih baik digunakan dibandingkan dengan pengujian unit.

Jika Anda masih memilih untuk menyambungkan ke kluster Spark lokal, Anda dapat menentukan string koneksi menggunakan yang berikut ini:

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

Entri yang bentrok atau hilang PATH untuk biner

Ada kemungkinan PATH Anda dikonfigurasi sehingga perintah seperti spark-shell akan menjalankan beberapa biner lain yang dipasang sebelumnya, bukan yang disediakan dengan Databricks Connect. Anda harus memastikan biner Databricks Connect mendapat prioritas, atau menghapus instalasi sebelumnya.

Jika Anda tidak dapat menjalankan perintah seperti spark-shell, ada kemungkinan PATH Anda tidak disiapkan secara otomatis oleh pip3 install dan Anda harus menambahkan dir penginstalan bin ke PATH Anda secara manual. Dimungkinkan untuk menggunakan Databricks Connect dengan IDEs meskipun ini tidak disiapkan.

Nama file, nama direktori, atau sintaks label volume salah pada Windows

Jika Anda menggunakan Databricks Connect di Windows dan lihat:

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

Databricks Connect diinstal ke direktori dengan ruang di jalur Anda. Anda dapat mengatasi hal ini dengan memasang ke jalur direktori tanpa spasi, atau mengonfigurasi jalur Anda menggunakan formulir nama pendek.