OneHotEncoding:在一个数据帧中工作,而不是在非常非常相似的数据帧中工作(pyspark)

OneHotEncoding: working in one dataframe, not working in very, very similar dataframe (pyspark)

我正在将 OneHotEncoding 函数应用于两个非常相似的数据帧。第一个数据框如下:

当我应用 one hot 编码时,一切正常:

但是,当我将完全相同的函数应用于这个不同但非常相似的数据帧时:

出现以下错误:

我不明白为什么会这样,因为数据帧 1 和 2 都是从以前的数据帧中提取的(它们作为机器学习应用程序的训练和测试 df)。两者都是 pyspark.sql 数据帧。谁能帮帮我?

如错误所述,您无法对包含 None 和整数的列表进行排序。您的专栏中可能有一个 null,这会导致 categories.sort() 行崩溃。

如果你想用 Spark 做 ML,我建议使用 pyspark.ml 包,而不是编写你自己的 one-hot 编码器。例如,参见 here