nov*_*der 6 python apache-spark pyspark
我刚刚开始学习Spark。目前,我正在尝试对数据帧中的单个列执行一次热编码。但是我无法从 pyspark 导入 OneHotEncoderEstimator。我尝试导入OneHotEncoder(在3.0.0中已分离),spark可以导入它,但它缺少转换功能。这是我下面的代码的输出。如果有人遇到类似问题,请帮忙。非常感谢您的参与!!
您的第一个问题是编码器对象没有“转换”错误。这是一个类别索引器。在转换对象的列之前,必须使用 fit() 函数训练 OneHotEncoderEstimator。通过这种方式,您的编码器对象将从数据中学习,并将能够将数据传输到编码的类别向量。大多数类别索引器模型都需要 fit() 函数来从数据本身中学习。
所以你应该做的是
encoder = OneHotEncoderEstimator(dropLast=False, inputCol:"AgeIndex", outputCol="AgeVec"
model = encoder.fit(df)
encoded = model.transform(df)
encoded.show()
Run Code Online (Sandbox Code Playgroud)
另外,如果您对某些东西不熟悉,我建议您在开始项目之前阅读文档,文档会很有帮助。包含转换操作的 Spark 部分作为链接发布在此处。
你的第二个问题是导入错误,因为你使用的是笔记本,我建议你应该检查你的笔记本的环境。但您的版本是预览版,主要考虑开发人员和测试人员。对于初学者来说,应该始终选择最新的经过测试的版本。尝试切换回spark-2.4.4并检查笔记本的环境。
归档时间: |
|
查看次数: |
12012 次 |
最近记录: |