Ошибка: данные должны быть СДР списка строк, но мои входные данные кажутся правильными (для обучения word2vec pyspark) - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь обучить модель word2vec, используя реализацию spark.Я следую учебному пособию по документации spark, но продолжаю получать сообщение об ошибке: «данные должны быть СДР списка строк» ​​

Мои данные были обработаны для удаления заглавных букв, стоп-слов и знаков препинания.Пример таков:

[Row(removed=['manakamana', 'doesnt', 'answer', 'questions', 'yet', 'makes', 'point', 'nepal', 'like', 'rest', 'planet', 'picturesque', 'far', 'peaceable', 'kingdom']),
 Row(removed=['wilfully', 'offensive', 'powered', 'chestthumping', 'machismo', 'good', 'clean', 'fun']),
 Row(removed=['difficult', 'imagine', 'material', 'wrong', 'spade', 'lost', 'found']),
 Row(removed=['despite', 'gusto', 'star', 'brings', 'role', 'hard', 'ride', 'shotgun', 'hectors', 'voyage', 'discovery'])]

Моя путаница заключается в том, что в документации говорится, что word2vec принимает ввод pyspark.sql.dataframe, которым является мой набор данных.С другой стороны, некоторые говорят, что это должен быть RDD.Я также попробовал это с кодом:

removed2 = removed.rdd

Но я все еще получаю те же ошибки («ожидаемые нулевые аргументы для построения ClassDict»).Я попытался даже установить его как

removed3 = removed.rdd.map(list)

, что дает

[[['manakamana',
   'doesnt',
   'answer',
   'questions',
   'yet',
   'makes',
   'point',
   'nepal',
   'like',
   'rest',
   'planet',
   'picturesque',
   'far',
   'peaceable',
   'kingdom']],
 [['wilfully',
   'offensive',
   'powered',
   'chestthumping',
   'machismo',
   'good',
   'clean',
   'fun']],
 [['difficult', 'imagine', 'material', 'wrong', 'spade', 'lost', 'found']]

, но теперь оно выдает ошибку "java.util.ArrayList не может быть приведен к java.lang.String"

Другая проблема, по-видимому, заключается в том, что пример github https://github.com/apache/spark/blob/master/examples/src/main/python/ml/word2vec_example.py больше не работает (также получает RDD в виде списка как строковую ошибку).

Я совершенно не понимаю, что вводитьформат word2vec принимает.

...