ImportError: Нет модуля с именем nltk.tag в pyspark - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь представить скрипт Python на Spark, который должен использовать pos_tag, но всякий раз, когда я делаю это, я получаю эту ошибку:

File "/hdata/dev/sdb1/hadoop/yarn/local/usercache/harshdee/appcache/application_1551632819863_0554/container_e36_1551632819863_0554_01_000009/pyspark.zip/pyspark/worker.py", line 98, in main
    command = pickleSer._read_with_length(infile)
  File "/hdata/dev/sdb1/hadoop/yarn/local/usercache/harshdee/appcache/application_1551632819863_0554/container_e36_1551632819863_0554_01_000009/pyspark.zip/pyspark/serializers.py", line 164, in _read_with_length
    return self.loads(obj)
  File "/hdata/dev/sdb1/hadoop/yarn/local/usercache/harshdee/appcache/application_1551632819863_0554/container_e36_1551632819863_0554_01_000009/pyspark.zip/pyspark/serializers.py", line 422, in loads
    return pickle.loads(obj)
ImportError: No module named nltk.tag

Я использую эту команду:

spark-submit --master yarn --driver-memory 32G --num-executors 20 --executor-memory 16G --executor-cores 6 --conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=./NLTK/nltk_env/bin/python --conf spark.executorEnv.PYTHON_EGG_CACHE="./.python-eggs/" --conf spark.executorEnv.PYTHON_EGG_DIR="./.python-eggs/" --conf spark.driverEnv.PYTHON_EGG_CACHE="./.python-eggs/" --conf spark.driverEnv.PYTHON_EGG_DIR="./.python-eggs/" --conf spark.yarn.appMasterEnv.NLTK_DATA=./ --conf spark.executorEnv.NLTK_DATA=./ --archives nltk_env.zip#NLTK,tokenizers.zip#tokenizers,taggers.zip#taggers --py-files helpers.py,const.py --packages com.databricks:spark-xml_2.10:0.3.5,com.databricks:spark-csv_2.10:1.5.0 <name-of-script>.py

Я подозреваю, что при использовании среды на рабочих узлах устанавливаются сторонние библиотеки, но nltk_data, такие как тегеры и токенизаторы, могут быть недоступны.

Какую команду следует использовать, чтобы сделать ее более доступной и запустить ее в кластере?

...