Python PySpark:无法导入名称“OneHotEncoderEstimator”
我刚刚开始学习Spark。目前,我正在尝试对数据帧中的单个列执行一个热编码。但是,我无法从pyspark导入OneHotEncoderEstimator。我曾尝试导入3.0.0中的OneHotEncoder,spark可以导入它,但它缺少转换功能。下面是我的代码的输出。如果有人遇到类似问题,请帮助。非常感谢您抽出时间Python PySpark:无法导入名称“OneHotEncoderEstimator”,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,我刚刚开始学习Spark。目前,我正在尝试对数据帧中的单个列执行一个热编码。但是,我无法从pyspark导入OneHotEncoderEstimator。我曾尝试导入3.0.0中的OneHotEncoder,spark可以导入它,但它缺少转换功能。下面是我的代码的输出。如果有人遇到类似问题,请帮助。非常感谢您抽出时间 第一个问题是编码器对象没有“转换”错误。这是一个类别索引器。在变换对象的列之前,必须使用fit函数训练OneHotEncoderEstimator。这样,编码器对象将从数据中学习,
第一个问题是编码器对象没有“转换”错误。这是一个类别索引器。在变换对象的列之前,必须使用fit函数训练OneHotEncoderEstimator。这样,编码器对象将从数据中学习,并能够将数据传输到编码的类别向量。大多数类别索引器模型都需要fit函数来从数据本身学习 所以你应该做的是
encoder = OneHotEncoderEstimator(dropLast=False, inputCol:"AgeIndex", outputCol="AgeVec"
model = encoder.fit(df)
encoded = model.transform(df)
encoded.show()
另外,我建议你在开始一个项目之前阅读文档。如果你是新手,文档帮助很大。spark的一部分,其中包括作为链接发布在此处的转换操作
您的第二个问题是导入错误,因为您正在使用笔记本,我建议您检查笔记本的环境。但是您的版本是预览版本,它主要考虑开发人员和测试人员。对于初学者来说,应该始终选择最新的测试版本。尝试切换回spark-2.4.4并检查笔记本电脑的环境 您的第一个问题是编码器对象没有“transform”错误。这是一个类别索引器。在变换对象的列之前,必须使用fit函数训练OneHotEncoderEstimator。这样,编码器对象将从数据中学习,并能够将数据传输到编码的类别向量。大多数类别索引器模型都需要fit函数来从数据本身学习 所以你应该做的是
encoder = OneHotEncoderEstimator(dropLast=False, inputCol:"AgeIndex", outputCol="AgeVec"
model = encoder.fit(df)
encoded = model.transform(df)
encoded.show()
另外,我建议你在开始一个项目之前阅读文档。如果你是新手,文档帮助很大。spark的一部分,其中包括作为链接发布在此处的转换操作
您的第二个问题是导入错误,因为您正在使用笔记本,我建议您检查笔记本的环境。但是您的版本是预览版本,它主要考虑开发人员和测试人员。对于初学者来说,应该始终选择最新的测试版本。尝试切换回spark-2.4.4并检查笔记本电脑的环境 除了Ulgen,OneHotEncoderEstimator已从spark 2.4版起重命名为OneHotEncoder。除了Ulgen,OneHotEncoderEstimator已从spark 2.4版起重命名为OneHotEncoder。请在SO上截图。请在SO上截图@cronoik所说的内容请在SO上截图。@cronoik所说的内容感谢您的快速回复!我确实读了spark github repo的OneHotEncoder,但是我输入了错误的代码,所以它被窃听了。非常感谢您的快速回复!我确实读过spark github repo的OneHotEncoder,但是我输入了错误的代码,所以它被窃听了。谢谢,它工作了谢谢,它工作了