Ошибка при выполнении NLTK на Spark RDD с использованием spark-submit - PullRequest
0 голосов
/ 17 июня 2020

Я установил pyspark_ python как python3 и хочу выполнить NLTK на Spark RDD. Но при выполнении NLTK это показано ниже Error.

  File "/home/user/.local/lib/python3.6/site-packages/nltk/corpus/reader/wordnet.py", line 1881, in <listcomp>
if form.endswith(old)
TypeError: endswith first arg must be bytes or a tuple of bytes, not str

Он работает хорошо, когда я запускаю приложение Spark в кластере HDP, но не работает в локальной системе spark-submit.

1 Ответ

1 голос
/ 17 июня 2020

выглядит как old имеет тип str

old.encode() преобразует его в байты

попробуйте

if form.endswith(old.encode())

In Python 3, не существует неявного преобразования между объектами unicode(str) и объектами bytes. Если вы знаете кодировку вывода, вы можете .decode() получить строку, или вы можете превратить \n, которое хотите добавить в байты, с помощью "\n".encode('ascii')

Итак, где вам нужно преобразовать str в байты используйте .encode(), а где вам нужно преобразовать байты в str, используйте .decode()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...