Spark IDF初始化报错:意外关键字参数'inputCol'问题咨询
解决Spark IDF初始化参数错误的方案
错误原因分析
报错TypeError: IDF.__init__() got an unexpected keyword argument 'inputCol'主要有两个核心问题:
- 参数名拼写错误:你使用了复数形式的
outputCols,但Spark ML的IDF类初始化参数中,输出列参数是单数的outputCol。 - 可能导入了错误的
IDF类:如果导入的是旧版RDD API的pyspark.mllib.feature.IDF,它的参数定义和ML API完全不同,也会触发此错误。
修正步骤
- 确保导入正确的Spark ML模块的
IDF:
from pyspark.ml.feature import IDF
- 修正参数名,将
outputCols改为outputCol,保留正确的inputCol和minDocFreq参数:
修正后的完整代码:
# 初始化IDF,注意输出列参数为单数outputCol idf = IDF(minDocFreq=3, inputCol="filtered", outputCol="filtered_idf") idfModel = idf.fit(regexTokenized) TFIDF_featurized = idfModel.transform(regexTokenized)
验证说明
执行修正后的代码后,IDF会正常读取inputCol指定的分词列,计算逆文档频率,并将结果输出到outputCol指定的列中,不会再出现参数不匹配的类型错误。
内容的提问来源于stack exchange,提问作者Eben Ezer Napitu
相关产品推荐
相关产品推荐

