Esta é uma cópia da pergunta de outra pessoa em outro fórum que nunca foi respondida, então pensei em perguntar novamente aqui, pois tenho o mesmo problema. (Consulte http://geekple.com/blogs/feeds/Xgzu7/posts/351703064084736 )
Instalei o Spark corretamente em minha máquina e consigo executar programas python com os módulos pyspark sem erros ao usar ./bin/pyspark como meu interpretador python.
No entanto, quando tento executar o shell Python normal, quando tento importar módulos pyspark, recebo este erro:
from pyspark import SparkContext
e diz
"No module named pyspark".
Como posso consertar isso? Existe uma variável de ambiente que preciso definir para apontar o Python para os cabeçalhos / bibliotecas / etc. Do pyspark? Se minha instalação do Spark for / spark /, quais caminhos do pyspark devo incluir? Ou os programas pyspark só podem ser executados a partir do interpretador pyspark?
fonte
Respostas:
Aqui está um método simples (se você não se importar em como funciona !!!)
Vá para o seu shell python
importe os módulos necessários
Feito!!!
fonte
Se imprimir esse erro:
Adicione $ SPARK_HOME / python / build a PYTHONPATH:
fonte
Acontece que o bin pyspark está CARREGANDO o python e carregando automaticamente os caminhos de biblioteca corretos. Confira $ SPARK_HOME / bin / pyspark:
Eu adicionei esta linha ao meu arquivo .bashrc e os módulos agora foram encontrados corretamente!
fonte
export SPARK_HOME=~/dev/spark-1.1.0
:, vai entender. Seus nomes de pasta podem variar.não execute seu arquivo py como: em
python filename.py
vez disso, use:spark-submit filename.py
fonte
import pyspark
haverá falha na linha de comando ou em um script executado. Você tem que a. execute o pyspark através do spark-submit conforme pretendido ou b. adicione $ SPARK_HOME / python a $ PYTHONPATH.Ao exportar o caminho SPARK e o caminho Py4j, começou a funcionar:
Então, se você não quiser digitá-los toda vez que quiser iniciar o shell Python, você pode querer adicioná-lo ao seu
.bashrc
arquivofonte
Apache Spark
instalação, alguma ideia?libexec/python/build
serve o diretório, mas oNo Mac, eu uso o Homebrew para instalar o Spark (fórmula "apache-spark"). Então, eu defino o PYTHONPATH desta forma para que a importação do Python funcione:
Substitua o "1.2.0" pela versão real do apache-spark no seu mac.
fonte
Para uma execução do Spark no pyspark, dois componentes são necessários para trabalhar juntos:
pyspark
pacote pythonAo iniciar coisas com spark-submit ou pyspark, esses scripts cuidarão de ambos, ou seja, eles configuram seu PYTHONPATH, PATH, etc, para que seu script possa encontrar pyspark, e eles também iniciem a instância de spark, configurando de acordo com seus parâmetros , por exemplo --master X
Como alternativa, é possível ignorar esses scripts e executar seu aplicativo Spark diretamente no interpretador python
python myscript.py
. Isso é especialmente interessante quando os scripts do Spark começam a se tornar mais complexos e, eventualmente, recebem seus próprios argumentos.getOrCreate()
partir do objeto construtor.Portanto, seu script pode ter algo assim:
fonte
Para se livrar de
ImportError: No module named py4j.java_gateway
, você precisa adicionar as seguintes linhas:fonte
No Windows 10, o seguinte funcionou para mim. Eu adicionei as seguintes variáveis de ambiente usando Configurações > Editar variáveis de ambiente para sua conta :
(mude "C: \ Programming \ ..." para a pasta na qual você instalou o Spark)
fonte
Para usuários do Linux, o seguinte é a maneira correta (e não codificada) de incluir o pyspark libaray em PYTHONPATH. Ambas as partes do PATH são necessárias:
Observe abaixo que a versão da biblioteca compactada é determinada dinamicamente, portanto, não a codificamos permanentemente.
fonte
Estou executando um cluster Spark, no CentOS VM, que é instalado a partir de pacotes cloudera yum.
Tive que definir as seguintes variáveis para executar o pyspark.
fonte
Isso é o que fiz para usar minha distribuição Anaconda com Spark. Esta é uma versão do Spark independente. Você pode alterar a primeira linha para o bin python de seus usuários. Além disso, a partir do Spark 2.2.0, o PySpark está disponível como um pacote autônomo no PyPi, mas ainda estou para testá-lo.
fonte
Você pode obter o
pyspark path
em python usandopip
(se você instalou o pyspark usando PIP) conforme abaixofonte
Eu tive o mesmo problema.
Certifique-se também de que está usando a versão certa do Python e instalando com a versão certa do pip. no meu caso: eu tinha o python 2.7 e 3.x. Eu instalei o pyspark com
pip2.7 install pyspark
e funcionou.
fonte
Recebi este erro porque o script python que estava tentando enviar se chama pyspark.py ( facepalm ). A correção foi definir meu PYTHONPATH conforme recomendado acima, renomear o script para pyspark_test.py e limpar o pyspark.pyc que foi criado com base no nome original do meu script e que corrigiu o erro.
fonte
No caso de DSE (DataStax Cassandra & Spark) O seguinte local precisa ser adicionado a PYTHONPATH
Em seguida, use o dse pyspark para obter os módulos no caminho.
fonte
Eu tive esse mesmo problema e acrescentaria algo às soluções propostas acima. Ao usar o Homebrew no Mac OS X para instalar o Spark, você precisará corrigir o endereço do caminho py4j para incluir libexec no caminho (lembrando de alterar a versão py4j para a que você tem);
fonte
py4j
apenas a pasta, não funcionou. Use o arquivo zip ...No meu caso, ele estava sendo instalado em um dist_package diferente do python (python 3.5), enquanto eu estava usando o python 3.6, então o seguinte ajudou:
fonte
Você também pode criar um contêiner Docker com Alpine como sistema operacional e instalar Python e Pyspark como pacotes. Isso terá tudo em contêiner.
fonte