StringIndexerModel 输入列
StringIndexerModel inputCol
我有一个带有 spark 2.1 的集群和一个进程,该进程最后写入文件 PipelineModel
,其中包含一个 StringIndexerModel
。我可以在本地(使用 spark 2.3)加载管道并检查 StringIndexerModel
。看起来很奇怪的是,两个版本的方法和字段不同,即使它们读取相同的文件。特别是,对于 spark 2.1,字段 inputCol
似乎不存在,即使显然需要它来使 StringIndexer 工作。
这就是我得到的。
星火 2.1:
pip1 = PipelineModel.load("somepath")
si = pip1.stages[0]
si
#StringIndexer_494eb1f86ababc8540e2
si.inputCol
#Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
#AttributeError: 'StringIndexerModel' object has no attribute 'inputCol'
Spark 2.3
pip1 = PipelineModel.load("somepath")
si = pip1.stages[0]
si
#StringIndexer_494eb1f86ababc8540e2
si.inputCol
#Param(parent='StringIndexer_494eb1f86ababc8540e2', name='inputCol', doc='input column name')
我知道方法和字段可能会从一个版本更改为另一个版本,但 inputCol
必须在对象中的某个位置,因为必须使 fit
或 transform
工作。有没有办法用 PySpark 提取 spark 2.1 中的 inputCol
?
Spark ML 中的繁重工作由内部 Java 对象 (_java_obj
) 完成,这就是对象可以工作的原因,即使内部从未在 Python 中完全暴露API。这当然限制了无需深入 Java API 就可以完成的工作,并且由于 Spark 2.3 Params
在 PySpark 模型 (SPARK-10931).
中公开
在以前的版本中,您可以访问内部模型,并从那里获取数据。但是,如果您想获得 Param
的值,您应该使用 get*
方法,而不是 Param
本身。
si._java_obj.getInputCol()
相关:
- pyspark: getting the best model's parameters after a gridsearch is blank {}
我有一个带有 spark 2.1 的集群和一个进程,该进程最后写入文件 PipelineModel
,其中包含一个 StringIndexerModel
。我可以在本地(使用 spark 2.3)加载管道并检查 StringIndexerModel
。看起来很奇怪的是,两个版本的方法和字段不同,即使它们读取相同的文件。特别是,对于 spark 2.1,字段 inputCol
似乎不存在,即使显然需要它来使 StringIndexer 工作。
这就是我得到的。
星火 2.1:
pip1 = PipelineModel.load("somepath")
si = pip1.stages[0]
si
#StringIndexer_494eb1f86ababc8540e2
si.inputCol
#Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
#AttributeError: 'StringIndexerModel' object has no attribute 'inputCol'
Spark 2.3
pip1 = PipelineModel.load("somepath")
si = pip1.stages[0]
si
#StringIndexer_494eb1f86ababc8540e2
si.inputCol
#Param(parent='StringIndexer_494eb1f86ababc8540e2', name='inputCol', doc='input column name')
我知道方法和字段可能会从一个版本更改为另一个版本,但 inputCol
必须在对象中的某个位置,因为必须使 fit
或 transform
工作。有没有办法用 PySpark 提取 spark 2.1 中的 inputCol
?
Spark ML 中的繁重工作由内部 Java 对象 (_java_obj
) 完成,这就是对象可以工作的原因,即使内部从未在 Python 中完全暴露API。这当然限制了无需深入 Java API 就可以完成的工作,并且由于 Spark 2.3 Params
在 PySpark 模型 (SPARK-10931).
在以前的版本中,您可以访问内部模型,并从那里获取数据。但是,如果您想获得 Param
的值,您应该使用 get*
方法,而不是 Param
本身。
si._java_obj.getInputCol()
相关:
- pyspark: getting the best model's parameters after a gridsearch is blank {}