開始使用免費開始

用抽樣縮小資料量

處理大型資料集時,你通常不需要每次都用到全部資料。特別是在專案初期、還在嘗試各種做法時,先用較小的子集來迭代,往往能加快速度。sdf_sample() 提供了方便的方式。它接受一個 tibble,以及要回傳的列數比例。本題需要進行「不放回」抽樣。若要隨機抽樣資料集的十分之一,可以使用以下程式碼:

a_tibble %>%
  sdf_sample(fraction = 0.1, replacement = FALSE)

由於抽樣結果是隨機的,而你很可能會重複使用縮小後的資料集,通常會搭配 compute() 將結果儲存成另一個 Spark data frame。

a_tibble %>%
  sdf_sample(<some args>) %>%
  compute("sample_dataset")

為了讓結果可重現,你也可以透過 seed 參數設定隨機數種子。這能確保每次執行程式碼都得到相同的隨機資料集。種子數字用哪個都可以;選一個你喜歡的正整數即可。

本練習屬於課程

使用 R 的 sparklyr:Spark 入門

檢視課程

練習說明

已為你建立名為 spark_conn 的 Spark 連線。連到 Spark 中曲目中繼資料的 tibble 已預先定義為 track_metadata_tbl

  • 使用 sdf_sample() 對曲目中繼資料進行 1% 的不放回抽樣。
    • seed 參數傳入 20000229 以設定隨機種子。
  • 計算結果,並將其儲存為名為 "sample_track_metadata" 的資料表。

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# track_metadata_tbl has been pre-defined
track_metadata_tbl

track_metadata_tbl %>%
  # Sample the data without replacement
  ___ %>%
  # Compute the result
  ___
編輯並執行程式碼