您如何从模型中获取InputColumn名称?

时间:2019-02-08 17:43:11

标签: pyspark apache-spark-ml

例如,使用OneHotEncoderModel,但是您可以从pyspark.ml.feature包中取出任何东西。使用OneHotEncoderEstimator时,可以选择设置inputCols。面对您,必须在构造函数中使用inputColsoutputCols

根据估算器创建相应的模型后,就无法再获取inputCols的值。没有像getInputCols()这样的方法可以通过给定模型为您提供。如果您使用getParam("inputCols"),它将只为您提供Param说明,而不是其值。

如果您查看序列化模型(元数据文件),则实际上已写出该参数(inputCols)的值。请参见下面的示例:

{"class":"org.apache.spark.ml.feature.OneHotEncoderModel","timestamp":1548215172466,"sparkVersion":"2.4.0","uid":"OneHotEncoderEstimator_c5fcbebe4045","paramMap":{"inputCols":["workclass-tmp"],"outputCols":["workclass-encoded"]},"defaultParamMap":{"handleInvalid":"error","dropLast":true}}

但是我正在寻找一种从API中获取信息的方法。

1 个答案:

答案 0 :(得分:0)

与我之前的回答正确:

正确的方法称为getOrDefault。例如:

model.getOrDefault("inputCols")

似乎有这种未记录的方式来获取这些值:

model._paramMap[model.inputCols]

model._paramMap[model.params["inputCols"]]