SparkML: предсказания конвейера содержат меньше записей, чем входные - PullRequest
0 голосов
/ 12 февраля 2019

Как я могу узнать - внутри конвейера - какие записи пропускаются или удаляются из преобразования?

У меня есть конвейер, подобный следующему:

  • StringIndexer
  • OneHotEncoderEstimator
  • (повторите выше для всех категориальных столбцов)
  • VectorAssembler (сбор всех закодированных и необработанных числовых столбцов)
  • LogisticRegression

Тогда:

model = pipeline.fit(train)
predicted = model.transform(test)

test.count() 
8092
predicted.count()
8091

Одна запись отсутствует, и я хотел бы узнать, какая именно.спасибо

1 Ответ

0 голосов
/ 10 марта 2019

Опция handleInvalid вашего StringIndexer, вероятно, установлена ​​на skip.

. Вы можете изменить эту опцию на error, и преобразование не будет выполнено для никогда не видимых меток.Начиная с Spark 2.2, вы также можете использовать опцию keep, чтобы хранить строки с неизвестными метками в отдельном сегменте для них:

string_indexer = StringIndexer(inputCol="label", outputCol="indexed", handleInvalid='keep')
...