例如,使用OneHotEncoderModel
,但是您可以从pyspark.ml.feature
包中取出任何东西。使用OneHotEncoderEstimator
时,可以选择设置inputCols
。面对您,必须在构造函数中使用inputCols
和outputCols
。
根据估算器创建相应的模型后,就无法再获取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中获取信息的方法。
答案 0 :(得分:0)
与我之前的回答正确:
正确的方法称为getOrDefault
。例如:
model.getOrDefault("inputCols")
似乎有这种未记录的方式来获取这些值:
model._paramMap[model.inputCols]
或
model._paramMap[model.params["inputCols"]]