開始使用免費開始

大資料,小小的 tibble

在上一題中,當你把資料複製到 Spark 時,copy_to() 會回傳一個值。這個回傳值是一種特別的 tibble(),本身不包含任何資料。要理解這點,你需要先了解一點 tidyverse 套件儲存資料的方式。Tibble 通常只是 data.frame 的一種變體,印出效果更友善。不過,dplyr 也允許它們代表遠端資料來源(例如資料庫,或像這裡的 Spark)。對於遠端資料集,tibble 物件只會儲存連線到遠端資料。稍後會更詳細說明,但此刻要把握的重點是:即使資料集很大,tibble 物件本身的大小其實很小。

在 Spark 端,資料會儲存在稱為 DataFrame 的變數中。這大致等同於 R 的 data.frame 變數型別。(不過欄位的型別名稱略有不同——例如 numeric 欄位在這裡稱為 DoubleType 欄位。)在整門課程中,除非需要特別區分 data.frameDataFrame,否則會使用一般的「data frame」來稱呼。由於這些型別也與資料庫的資料表相似,有時也會用「table」來描述這種矩形資料。

以 Spark 連線與 Spark 資料框名稱字串呼叫 tbl(),會回傳與你使用 copy_to() 時相同的 tibble 物件。

本練習中你會用到一個實用工具:pryr 套件的 object_size() 函式。它可以顯示某個物件佔用了多少記憶體。

本練習屬於課程

使用 R 的 sparklyr:Spark 入門

檢視課程

練習說明

我們已替你建立好名為 spark_conn 的 Spark 連線。1,000 首歌曲的曲目中繼資料已儲存在 Spark 叢集中的 "track_metadata" 資料表。

  • 使用 tbl() 連到 "track_metadata" 資料表,並將結果指定為 track_metadata_tbl
  • track_metadata_tbl 上使用 dim() 查看資料集的大小。
  • track_metadata_tbl 上使用 object_size() 查看這個 tibble 有多小。

動手互動練習

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

# Link to the track_metadata table in Spark
track_metadata_tbl <- ___(___, "___")

# See how big the dataset is
___(___)

# See how small the tibble is
___(___)
編輯並執行程式碼