У меня есть фрейм данных Spark со следующими данными:
categories
1 John
2 Luis
3 Dora
Для которого мне нужно создать одну горячую версию как:
categories categories_Dora categories_John categories_Luis
1 John 0 1 0
2 Luis 0 0 1
3 Dora 1 0 0
Это текущий код I have:
test <- data.frame("SN" = 1:2, "Age" = c(21,15), "Name" = c("John;Luis","Dora"))
df <- as.DataFrame(test)
df_2 = selectExpr(df, "split(Name, ';') AS categories","Name")
dat <- df_2 %>%
mutate(categories=explode(df_2$categories)) %>%
select("categories")
Текущее решение, которое у меня есть, - преобразовать его в обычный R-фрейм данных и применить функцию быстрых макетов. Это работает для этого случая, но не будет работать должным образом для большого набора данных:
r_df = dat %>%
SparkR::collect()
dummy_r = dummy_cols(r_df)
Как получить тот же результат, используя кадры данных sparkR?