如何通过从IndexToString
?
labelIndexer
转换
labelIndexer = StringIndexer(inputCol="shutdown_reason", outputCol="label")
idx_to_string = IndexToString(inputCol="prediction", outputCol="predictedValue")
答案 0 :(得分:2)
如何通过使用labelIndexer?
中的标签来使用IndexToString进行转换
你做不到。 labelIndexer
是StringIndexer
,要获得标签,您需要StringIndexerModel
。 fit
模型:
from pyspark.ml.feature import *
df = spark.createDataFrame([
("foo", ), ("bar", )
]).toDF("shutdown_reason")
labelIndexerModel = labelIndexer.fit(df)
使用标签:
idx_to_string.setLabels(labelIndexerModel.labels)
idx_to_string.getLabels()
# ['foo', 'bar']
和transform
:
df_with_prediction = labelIndexerModel.transform(df).withColumnRenamed(
"label", "prediction"
)
idx_to_string.transform(df_with_prediction).show()
# +---------------+----------+--------------+
# |shutdown_reason|prediction|predictedValue|
# +---------------+----------+--------------+
# | foo| 0.0| foo|
# | bar| 1.0| bar|
# +---------------+----------+--------------+