2017-12-07 4 views
1

Folgendes wurde erfolgreich auf einem Cloudera CDSW Cluster-Gateway ausgeführt.Nach der Installation von Sparknlp, kann nicht importiert werden sparknlp

import pyspark 
from pyspark.sql import SparkSession 
spark = (SparkSession 
      .builder 
      .config("spark.jars.packages","JohnSnowLabs:spark-nlp:1.2.3") 
      .getOrCreate() 
     ) 

Welcher Ausgang wird ausgegeben?

Ivy Default Cache set to: /home/cdsw/.ivy2/cache 
The jars for the packages stored in: /home/cdsw/.ivy2/jars 
:: loading settings :: url = jar:file:/opt/cloudera/parcels/SPARK2-2.2.0.cloudera1-1.cdh5.12.0.p0.142354/lib/spark2/jars/ivy-2.4.0.jar!/org/apache/ivy/core/settings/ivysettings.xml 
JohnSnowLabs#spark-nlp added as a dependency 
:: resolving dependencies :: org.apache.spark#spark-submit-parent;1.0 
    confs: [default] 
    found JohnSnowLabs#spark-nlp;1.2.3 in spark-packages 
    found com.typesafe#config;1.3.0 in central 
    found org.fusesource.leveldbjni#leveldbjni-all;1.8 in central 
downloading http://dl.bintray.com/spark-packages/maven/JohnSnowLabs/spark-nlp/1.2.3/spark-nlp-1.2.3.jar ... 
    [SUCCESSFUL ] JohnSnowLabs#spark-nlp;1.2.3!spark-nlp.jar (3357ms) 
downloading https://repo1.maven.org/maven2/com/typesafe/config/1.3.0/config-1.3.0.jar ... 
    [SUCCESSFUL ] com.typesafe#config;1.3.0!config.jar(bundle) (348ms) 
downloading https://repo1.maven.org/maven2/org/fusesource/leveldbjni/leveldbjni-all/1.8/leveldbjni-all-1.8.jar ... 
    [SUCCESSFUL ] org.fusesource.leveldbjni#leveldbjni-all;1.8!leveldbjni-all.jar(bundle) (382ms) 
:: resolution report :: resolve 3836ms :: artifacts dl 4095ms 
    :: modules in use: 
    JohnSnowLabs#spark-nlp;1.2.3 from spark-packages in [default] 
    com.typesafe#config;1.3.0 from central in [default] 
    org.fusesource.leveldbjni#leveldbjni-all;1.8 from central in [default] 
    --------------------------------------------------------------------- 
    |     |   modules   || artifacts | 
    |  conf  | number| search|dwnlded|evicted|| number|dwnlded| 
    --------------------------------------------------------------------- 
    |  default  | 3 | 3 | 3 | 0 || 3 | 3 | 
    --------------------------------------------------------------------- 
:: retrieving :: org.apache.spark#spark-submit-parent 
    confs: [default] 
    3 artifacts copied, 0 already retrieved (5740kB/37ms) 
Setting default log level to "ERROR". 
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel). 

Aber wenn ich versuche sparknlp zu importieren als auf John Snow Labs für pyspark beschrieben ...

import sparknlp 
# or 
from sparknlp.annotator import * 

ich dieses:

ImportError: No module named sparknlp 
ImportError: No module named sparknlp.annotator 

Was muss ich sparknlp verwenden tun müssen ? Natürlich könnte dies für jedes Spark-Paket verallgemeinert werden.

+0

'laufen pip installieren sparknlp'' gab sparknlp' Sammeln, 'Es konnte keine Version gefunden werden, die die Anforderung erfüllt. Sparknlp (aus Versionen:)', 'Keine passende Verteilung für sparknlp' gefunden – Clay

Antwort

1

Ich habe es herausgefunden. Die JAR-Dateien, die korrekt geladen wurden, waren nur die kompilierten Scala-Dateien. Ich musste die Python-Dateien, die den Wrapper-Code enthielten, immer noch an einem Speicherort ablegen, von dem ich importieren konnte. Sobald ich das gemacht habe, hat alles super geklappt.

0

können Sie das SparkNLP Paket in PySpark verwenden Sie den Befehl:

pyspark --packages JohnSnowLabs:spark-nlp:1.3.0 

Aber dieser Python nicht sagen, wo die Bindungen zu finden. Im Anschluss an die Anweisungen für einen ähnlichen Bericht here, dieses Problem behoben werden kann, entweder durch Hinzufügen des jar-Verzeichnis zu Ihrem PYTHONPATH:

export PYTHONPATH="~/.ivy2/jars/JohnSnowLabs_spark-nlp-1.3.0.jar:$PYTHONPATH" 

oder durch

import sys, glob, os 
sys.path.extend(glob.glob(os.path.join(os.path.expanduser("~"), ".ivy2/jars/*.jar"))) 
Verwandte Themen