Ini adalah salinan pertanyaan orang lain di forum lain yang tidak pernah dijawab, jadi saya pikir saya akan menanyakannya kembali di sini, karena saya memiliki masalah yang sama. (Lihat http://geekple.com/blogs/feeds/Xgzu7/posts/351703064084736 )
Saya telah menginstal Spark dengan benar di mesin saya dan saya dapat menjalankan program python dengan modul pyspark tanpa kesalahan saat menggunakan ./bin/pyspark sebagai penerjemah python saya.
Namun, ketika saya mencoba menjalankan shell Python biasa, ketika saya mencoba mengimpor modul pyspark, saya mendapatkan kesalahan ini:
from pyspark import SparkContext
dan tertulis
"No module named pyspark".
Bagaimana cara memperbaikinya? Apakah ada variabel lingkungan yang perlu saya setel untuk mengarahkan Python ke pyspark headers / libraries / etc.? Jika instalasi percikan saya adalah / spark /, jalur pyspark mana yang perlu saya sertakan? Atau dapatkah program pyspark hanya dijalankan dari juru bahasa pyspark?
sumber
Jawaban:
Berikut adalah metode sederhana (Jika Anda tidak peduli tentang cara kerjanya !!!)
Pergi ke shell python Anda
impor modul yang diperlukan
Selesai !!!
sumber
Jika mencetak kesalahan seperti itu:
Silakan tambahkan $ SPARK_HOME / python / build ke PYTHONPATH:
sumber
Ternyata pyspark bin sedang MEMUAT python dan secara otomatis memuat jalur perpustakaan yang benar. Lihat $ SPARK_HOME / bin / pyspark:
Saya menambahkan baris ini ke file .bashrc saya dan modul sekarang ditemukan dengan benar!
sumber
export SPARK_HOME=~/dev/spark-1.1.0
:, go figure. Nama lipat Anda mungkin berbeda.jangan menjalankan file py Anda sebagai: sebagai
python filename.py
gantinya gunakan:spark-submit filename.py
sumber
import pyspark
akan gagal pada baris perintah atau dalam skrip yang dieksekusi. Anda harus: menjalankan pyspark melalui spark-submit sebagaimana dimaksud atau b. tambahkan $ SPARK_HOME / python ke $ PYTHONPATH.Dengan mengekspor jalur SPARK dan jalur Py4j, itu mulai berfungsi:
Jadi, jika Anda tidak ingin mengetik ini setiap kali Anda ingin menjalankan shell Python, Anda mungkin ingin menambahkannya ke
.bashrc
file Anda .sumber
Apache Spark
instalasi saya , tahu?libexec/python/build
direktori itu, tetapi spark 1.6.2 tidak memilikinyaDi Mac, saya menggunakan Homebrew untuk menginstal Spark (rumus "apache-spark"). Kemudian, saya mengatur PYTHONPATH dengan cara ini sehingga impor Python berfungsi:
Ganti "1.2.0" dengan versi apache-spark yang sebenarnya di mac Anda.
sumber
Untuk eksekusi Spark di pyspark, dua komponen diperlukan untuk bekerja bersama:
pyspark
paket pythonSaat meluncurkan sesuatu dengan spark-submit atau pyspark, skrip ini akan mengurus keduanya, yaitu mereka mengatur PYTHONPATH, PATH, dll. Anda, sehingga skrip Anda dapat menemukan pyspark, dan mereka juga memulai contoh percikan, mengonfigurasi sesuai dengan parameter Anda , misalnya --master X
Alternatifnya, dimungkinkan untuk melewati skrip ini dan menjalankan aplikasi spark Anda langsung di interpreter python seperti
python myscript.py
. Ini sangat menarik ketika skrip percikan mulai menjadi lebih kompleks dan akhirnya menerima argumennya sendiri.getOrCreate()
dari objek pembangun.Karena itu, skrip Anda dapat memiliki sesuatu seperti ini:
sumber
Untuk menghilangkan
ImportError: No module named py4j.java_gateway
, Anda perlu menambahkan baris berikut:sumber
Di Windows 10, berikut ini berfungsi untuk saya. Saya menambahkan variabel lingkungan berikut menggunakan Pengaturan > Edit variabel lingkungan untuk akun Anda :
(ubah "C: \ Programming \ ..." ke folder tempat Anda menginstal spark)
sumber
Untuk pengguna Linux, berikut ini adalah cara yang benar (dan non-hard-coded) untuk memasukkan pyspark libaray di PYTHONPATH. Kedua bagian PATH diperlukan:
Perhatikan di bawah ini bahwa versi pustaka zip ditentukan secara dinamis, jadi kami tidak melakukan hard-code.
sumber
Saya menjalankan spark cluster, di CentOS VM, yang diinstal dari paket cloudera yum.
Harus mengatur variabel berikut untuk menjalankan pyspark.
sumber
Inilah yang saya lakukan untuk menggunakan distribusi Anaconda saya dengan Spark. Ini adalah versi Spark independen. Anda dapat mengubah baris pertama ke bin python pengguna Anda. Juga, mulai Spark 2.2.0 PySpark tersedia sebagai paket yang berdiri sendiri di PyPi tetapi saya belum mengujinya.
sumber
Anda bisa mendapatkan
pyspark path
di python menggunakanpip
(jika Anda telah menginstal pyspark menggunakan PIP) seperti di bawah inisumber
Saya memiliki masalah yang sama.
Juga pastikan Anda menggunakan versi python yang benar dan Anda menginstalnya dengan versi pip yang benar. dalam kasus saya: Saya memiliki python 2.7 dan 3.x. Saya telah menginstal pyspark dengan
pip2.7 menginstal pyspark
dan itu berhasil.
sumber
Saya mendapat kesalahan ini karena skrip python yang saya coba kirimkan disebut pyspark.py ( facepalm ). Perbaikannya adalah mengatur PYTHONPATH saya seperti yang disarankan di atas, kemudian mengganti nama skrip menjadi pyspark_test.py dan membersihkan pyspark.pyc yang dibuat berdasarkan nama asli skrip saya dan itu menghapus kesalahan ini.
sumber
Dalam kasus DSE (DataStax Cassandra & Spark), lokasi berikut perlu ditambahkan ke PYTHONPATH
Kemudian gunakan dse pyspark untuk mendapatkan modul di jalur.
sumber
Saya memiliki masalah yang sama dan akan menambahkan satu hal ke solusi yang diusulkan di atas. Saat menggunakan Homebrew di Mac OS X untuk menginstal Spark, Anda harus memperbaiki alamat jalur py4j untuk menyertakan libexec di jalur (ingat untuk mengubah versi py4j ke versi yang Anda miliki);
sumber
py4j
foldernya saja, tidak berhasil. Gunakan file zip ...Dalam kasus saya itu mendapatkan instalasi di dist_package python yang berbeda (python 3.5) sedangkan saya menggunakan python 3.6, jadi yang di bawah ini membantu:
sumber
Anda juga dapat membuat kontainer Docker dengan Alpine sebagai OS dan menginstal Python dan Pyspark sebagai paket. Itu akan membuat semuanya dalam kontainer.
sumber