SparkML:管道预测的记录少于输入

问题描述 投票:1回答:1

我怎样才能找到 - 在管道内 - 从转换中跳过或删除哪些记录?

我有一个管道,如下所示:

  • StringIndexer
  • OneHotEncoderEstimator
  • (对于所有分类cols重复上述内容)
  • VectorAssembler(收集所有编码和原始数字列)
  • 逻辑回归

然后:

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

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

缺少一条记录,我想知道哪一条记录。谢谢

apache-spark pyspark apache-spark-ml
1个回答
0
投票

你的handleInvalidStringIndexer选项可能会设置为skip

您可以将此选项更改为error,并且转换将在从未见过的标签上失败。从Spark 2.2开始,您还可以使用选项keep将具有未知标签的行保存在单独的存储桶中:

string_indexer = StringIndexer(inputCol="label", outputCol="indexed", handleInvalid='keep')
© www.soinside.com 2019 - 2024. All rights reserved.