有没有办法在 Spark 中执行 OHE 并“展平”数据集,以便每个 Id 只有一行?
例如,如果输入是这样的:
+---+--------+
| id|category|
+---+--------+
| 0| a|
| 1| b|
| 2| c|
| 1| a|
| 2| a|
| 0| c|
+---+--------+
输出应该是这样的(id0有类别
a
和c
,id1有a
和b
等):
+---+----------+----------+----------+
| id|category_a|category_c|category_b|
+---+----------+----------+----------+
| 0| 1| 1| 0|
| 1| 1| 0| 1|
| 2| 1| 1| 0|
+---+----------+----------+----------+
我可以通过 OHE + groupby (aggr - 'max') 在 pandas 中执行此操作,但由于特定的输出格式,无法找到在 pyspark 中执行此操作的方法..
谢谢您,感谢任何帮助。
好吧,看来这可以通过 groupby + 数据透视来完成:
df.groupBy('id').pivot('category').count().show()
小问题如何正确存储这个
encoder
以在推理部分使用..