Sparklyr: Как удалить дублирующиеся строковые шаблоны в строке? - PullRequest
0 голосов
/ 16 марта 2020

Следующая проблема:

В моих данных есть столбец, как в этом примере:

df <- data.frame(Example = c("ExampleDuplicated;372;296;251;381| Test;429;672;104;35| ExampleDuplicated;372;296;251;381", "Test;0;234;555;33"))

sdf <- copy_to(sc, df, "df", overwrite = TRUE)

Теперь для этого столбца я хочу удалить дублирующиеся строковые шаблоны в строках типа «ExampleDuplicated». ; 372; 296; 251; 381 ".

Я начал с:

sdf <- sdf %>%
    ft_regex_tokenizer(input_col = "Example",
               output_col = "Example_List",
               pattern = "\\| ")

Затем я попытался удалить дубликаты с:

sdf <- sdf %>%
  mutate(Example_List= unique(Example_List))

И

sdf <- sdf %>%
  mutate(Example_List= distinct(Example_List))

Обе попытки не увенчались успехом.

Мне также не удалось превратить список обратно в одну строку с:

sdf <- sdf %>%
  mutate(ExampleNew = explode(Example_List))

В результате:

Example_List  Example_New

<list [3]>  exampleduplicated;372;296;251;381
<list [3]>  test;429;672;104;35
<list [3]>  exampleduplicated;372;296;251;381
<list [1]>  test;0;234;555;33

Принимая во внимание, что Я намеревался получить:

Example_List  Example_New

<list [2]>  exampleduplicated;372;296;251;381| Test;429;672;104;35
<list [1]>  test;0;234;555;33
...