【发布时间】:2021-05-05 00:30:58
【问题描述】:
我有一个非常大的数据框,例如:
A B
a_1 b_1
a_2 b_2
a_3 b_3
a_1 b_4
a_2 b_4
a_2 b_2
我想创建与 B 的每个唯一值对应的列,如果 A 的每个唯一值都存在,则将其值设置为 1。预期结果应如下所示
A B C_b_1 C_b_2 C_b_3 C_b_4
a_1 b_1 1 0 0 1
a_2 b_2 0 1 0 1
a_3 b_3 0 0 1 0
a_1 b_4 1 0 0 1
a_2 b_4 0 1 0 1
a_2 b_2 0 1 0 1
解释: 对于 a_1,B 的不同值为 {b_1, b_4},因此与它们对应的列设置为 1。对于 a_2,B 的不同值为 {b_2, b_4}因此这些列是 1。对于 a_3 也是如此。
数据非常庞大,预计“A”大约有 37000 个不同的值,而“B”大约有 370 个。记录数超过 1700 万。
【问题讨论】:
标签: scala dataframe apache-spark user-defined-functions rdd