Как srckeep влияет на базовый фрейм диска?

У меня дисковый фрейм с этими столбцами

key_a
key_b
key_c
value

Скажем, фрейм диска составляет 200 миллионов строк, и я хотел бы сгруппировать его по key_b. Кроме того, я хочу, чтобы нижележащий дисковый фрейм оставался неизменным, чтобы позже я мог присоединить его к чему-то еще на key_c или агрегировать его на key_a. Меня беспокоит, что srckeep влияет на базовый фрейм диска.

Будет ли что-то из этого работать? Если да, могу ли я ожидать, что один будет быстрее другого?

  df %>% 
  srckeep("value", "key_b") %>%
  group_by(key_b) %>% 
  summarize(avg = mean(value)) %>% 
  collect
  df[
    keep = c("value", "key_b" 
    .(avg = mean(value)),
    .(key_b)
    ]

Как любое из этих агрегатов повлияет на базовый фрейм диска? Ранее у меня был опыт, когда я назначил агрегирование переменной, а затем запустил delete(aggregation, но он удалил весь фрейм диска.

1 ответ

Решение

Когда вы применяете операцию, она вообще не меняет базовый disk.frame!

srckeepвлияет только на то, что используется! Он загружает только те столбцы в srckeepв памяти при обработке. Опять же, это вообще не влияет на базовые данные.

Если вы не сделаете write_disk.frame(some_other_diskf, "to/location_of_disk.frame.df", overwrite=TRUE) который перезапишет старый disk.frame.

Disk.frame всегда находится на диске. Вы можете увидеть, где это с attr(diskf, "path")

Другие вопросы по тегам