我有一个pyspark数据帧,具有以下模式:
Key1 | Key2 | Key3 | Value |
---|---|---|---|
a | a | a | "value1" |
a | a | a | "value2" |
a | a | b | "value1" |
b | b | a | "value2" |
(在现实生活中,此数据帧非常大,无法转换为数据帧)
我的目标是将数据帧转换为这样:
Key1 | Key2 | Key3 | value1 | value2 |
---|---|---|---|---|
a | a | a | 1 | 1 |
a | a | b | 1 | 0 |
b | b | a | 0 | 1 |
我知道这在使用get_dummies函数的Pandas 中是可能的,我也看到了一些pyspark&;Pandas hybrid function,我不确定我能用
值得一提的是,列Value
只能接收(在本例中)值"value1"
和"value2"
SMALL EDIT
在实现了公认的解决方案之后,为了将其转换为一个热编码,而不仅仅是外观的总和,我将每个列转换为布尔类型,然后返回整数.