Pyspark 无法将StringIndexer作为列表传递到模型管道阶段

Pyspark 无法将StringIndexer作为列表传递到模型管道阶段,pyspark,apache-spark-mllib,apache-spark-ml,Pyspark,Apache Spark Mllib,Apache Spark Ml,PySpark管道对我来说是非常新的。我试图通过传递以下列表在管道中创建阶段: pipeline=pipeline() 我在多个列上应用功能索引: cat_col=[‘性别’、‘习惯’、‘模式] indexer=[StringIndexer(inputCol=column,outputCol=column+“\u index”)。为cat\u col中的列拟合(训练数据\u 0) 在管道上运行fit时,我发现以下错误: model\u pipeline=pipeline.fit(列车df) 我们

PySpark管道对我来说是非常新的。我试图通过传递以下列表在管道中创建阶段:

pipeline=pipeline()

我在多个列上应用功能索引:

cat_col=[‘性别’、‘习惯’、‘模式]

indexer=[StringIndexer(inputCol=column,outputCol=column+“\u index”)。为cat\u col中的列拟合(训练数据\u 0)

在管道上运行fit时,我发现以下错误:

model\u pipeline=pipeline.fit(列车df)

我们如何将列表传递到舞台或任何解决方案,以实现这一目标或更好的方式实现这一目标?

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<command-3999694668013877> in <module>
----> 1 model_pipeline = pipeline.fit(train_df)

/databricks/spark/python/pyspark/ml/base.py in fit(self, dataset, params)
    130                 return self.copy(params)._fit(dataset)
    131             else:
--> 132                 return self._fit(dataset)
    133         else:
    134             raise ValueError("Params must be either a param map or a list/tuple of param maps, "

/databricks/spark/python/pyspark/ml/pipeline.py in _fit(self, dataset)
     95             if not (isinstance(stage, Estimator) or isinstance(stage, Transformer)):
     96                 raise TypeError(
---> 97                     "Cannot recognize a pipeline stage of type %s." % type(stage))
     98         indexOfLastEstimator = -1
     99         for i, stage in enumerate(stages):

TypeError: Cannot recognize a pipeline stage of type <class 'list'>.```

---------------------------------------------------------------------------
TypeError回溯(最近一次调用上次)
在里面
---->1型号管道=管道安装(列车df)
/fit中的databricks/spark/python/pyspark/ml/base.py(self、dataset、params)
130返回自复制(参数).\u拟合(数据集)
131其他:
-->132返回自拟合(数据集)
133其他:
134 raise VALUERROR(“参数必须是参数映射或参数映射的列表/元组,”
/databricks/spark/python/pyspark/ml/pipeline.py in_-fit(self,dataset)
95如果不是(isinstance(阶段、估计器)或isinstance(阶段、变压器)):
96上升类型错误(
--->97“无法识别%s类型的管道阶段。%type(阶段))
98指数flastestimator=-1
99代表i,枚举阶段(阶段):
TypeError:无法识别类型为的管道阶段```
试试下面的方法-

cat_col=[“性别”、“习惯”、“模式”]
indexer=[StringIndexer(inputCol=column,outputCol=column+“\u index”)。为cat\u col中的列拟合(训练数据\u 0)
汇编程序=向量汇编程序。。。
dtc\u模型=决策树分类程序。。。
#使用转换器和估计器创建管道
阶段=索引器
stages.append(汇编程序)
阶段。附加(dtc\U型号)
管道=管道().设置阶段(阶段)
模型_管道=管道.fit(列_-df)
试试下面的方法-

cat_col=[“性别”、“习惯”、“模式”]
indexer=[StringIndexer(inputCol=column,outputCol=column+“\u index”)。为cat\u col中的列拟合(训练数据\u 0)
汇编程序=向量汇编程序。。。
dtc\u模型=决策树分类程序。。。
#使用转换器和估计器创建管道
阶段=索引器
stages.append(汇编程序)
阶段。附加(dtc\U型号)
管道=管道().设置阶段(阶段)
模型_管道=管道.fit(列_-df)

在应用建议的更改时,也会出现相同的错误:
TypeError:无法识别类型为
更新的ans的管道阶段。虽然我还没有执行,但尝试使用以下命令来修复它:
pipeline=pipeline()。设置标记(索引器+[assembler,dtc\u model])
谢谢您的帮助!在应用建议的更改时,也会出现相同的错误:
TypeError:无法识别类型为
更新的ans的管道阶段。虽然我还没有执行,但尝试使用以下方法修复它:
pipeline=pipeline()。设置标记(indexer+[assembler,dtc\u model])
谢谢您的帮助!