ここsparklyr
とdplyr
を使用して、それを行うための一つの方法です。再現可能な例のために、私はnycflights13
パッケージからフライトデータを使用しています(336776台のOBS。19個の変数の)
library(nycflights13)
library(sparklyr)
library(dplyr)
sc <- sparklyr::spark_connect(master = "local", version = "2.1.0", hadoop_version = "2.7")
flights_spark <- sparklyr::copy_to(sc, flights)
src_tbls(sc)
flights_spark %>%
dplyr::mutate_all(is.na) %>%
dplyr::mutate_all(as.numeric) %>%
dplyr::summarise_all(sum) %>%
dplyr::collect()
そして、あなたは私の古いノートパソコンでは結果
> collect(flights_spark_isna_count)
# A tibble: 1 × 19
year month day dep_time sched_dep_time dep_delay arr_time sched_arr_time arr_delay carrier flight tailnum origin dest air_time
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 0 0 0 8255 0 8255 8713 0 9430 0 0 2512 0 0 9430
# ... with 4 more variables: distance <dbl>, hour <dbl>, minute <dbl>, time_hour <dbl>
を取得し、それがかかりましたSparkセッションを開始し、Sparkにデータを読み込んだり、NAsを数えたりするなど、このコードはすべて約30秒です。この最後のステップは10秒以内でした。
もちろん、あなたのデータセットはもっと大きいですが、おそらくそれは機能します。 (私は作業中の大規模なデータセットのデータでも試したので、約200万個のobsと146個の変数があり、数分しかかかりません)。
私はまだ答えを受け取ることを望みます。 – CodingButStillAlive