共用方式為


教學課程:從筆記本匯入和可視化 CSV 數據

本教學課程將逐步引導您使用 Azure Databricks 筆記本,透過 Python、Scala 和 R,從來自 health.data.ny.gov 的嬰兒名稱資料 CSV 檔匯入到您的 Unity Catalog 磁碟區中。您也會學習如何修改欄名稱、視覺化資料,以及儲存到表格中。

備註

如果你使用 Databricks 免費版,請選擇 Python 標籤以查看本教學中的所有程式碼範例。 免費版不支援 R 或 Scala。 此外,免費版限制了外網存取,因此你必須透過工作區介面上傳 CSV 檔案,不能用程式碼下載。 詳細說明請參見 步驟3

需求

若要完成這項工作,請確定您符合下列需求:

  • 工作區必須已啟用 Unity 目錄 。 如需開始使用 Unity 目錄的資訊,請參閱 開始使用 Unity 目錄。 Azure Databricks 免費版和免費試用工作區預設啟用了 Unity 目錄。
  • 您必須具有磁碟區的 WRITE VOLUME 權限、父結構描述的 USE SCHEMA 權限,以及父目錄的 USE CATALOG 權限。 免費版使用者預設擁有工作區目錄與 default 結構的這些權限。
  • 您必須擁有使用現有計算資源或建立新計算資源的權限。 請參閱 Compute 或找你的 Azure Databricks 管理員。

提示

如需本文的完整筆記本,請參閱匯入並視覺化資料筆記本

步驟 1:建立新的筆記本

若要在工作區中建立筆記本,請按一下提要欄位的 新增圖示新增 ,然後按一下 筆記本。 空白筆記本會在工作區中開啟。

若要深入瞭解如何建立並管理筆記本,請參閱 管理筆記本

步驟 2:定義變數

在此步驟中,您會定義變數,以用於本文中建立的範例筆記本。 你需要 Unity Catalog 目錄、結構和容量的名稱。

提示

如果你不知道你的目錄和結構名稱,請點選 「資料」圖示。目錄 請見側邊欄。 工作區目錄與你的工作區共用名稱,並列在目錄面板中。 展開它可以看到可用的結構圖。 免費版及免費試用版使用者可以使用工作區目錄與 default 架構。

如果你沒有磁碟區,可以在筆記本儲存格執行以下指令(將 和 <catalog_name> 替換<schema_name>成你的值):

CREATE VOLUME IF NOT EXISTS <catalog_name>.<schema_name>.my_volume
  1. 請將下列程式碼複製並貼到全新空白筆記本資料格。 請將 <catalog-name><schema-name><volume-name> 替換為 Unity Catalog 磁碟區的目錄、結構描述和磁碟區名稱。 選擇性地以您選擇的資料表名稱取代 table_name 值。 你可以將嬰兒名字資料儲存到本文後面的表格中。

  2. 按下 Shift+Enter 以執行儲存格並建立新的空白儲存格。

    Python

    catalog = "<catalog_name>"
    schema = "<schema_name>"
    volume = "<volume_name>"
    download_url = "https://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv"
    file_name = "baby_names.csv"
    table_name = "baby_names"
    path_volume = "/Volumes/" + catalog + "/" + schema + "/" + volume
    path_table = catalog + "." + schema
    print(path_table) # Show the complete path
    print(path_volume) # Show the complete path
    

    程式語言 Scala

    val catalog = "<catalog_name>"
    val schema = "<schema_name>"
    val volume = "<volume_name>"
    val downloadUrl = "https://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv"
    val fileName = "baby_names.csv"
    val tableName = "baby_names"
    val pathVolume = s"/Volumes/${catalog}/${schema}/${volume}"
    val pathTable = s"${catalog}.${schema}"
    print(pathVolume) // Show the complete path
    print(pathTable) // Show the complete path
    

    R

    catalog <- "<catalog_name>"
    schema <- "<schema_name>"
    volume <- "<volume_name>"
    download_url <- "https://health.data.ny.gov/api/views/jxy9-yhdk/rows.csv"
    file_name <- "baby_names.csv"
    table_name <- "baby_names"
    path_volume <- paste("/Volumes/", catalog, "/", schema, "/", volume, sep = "")
    path_table <- paste(catalog, ".", schema, sep = "")
    print(path_volume) # Show the complete path
    print(path_table) # Show the complete path
    

步驟 3:匯入 CSV 檔案

在此步驟中,將包含嬰兒姓名資料的 CSV 檔案從 health.data.ny.gov 匯入到 Unity Catalog 磁碟區。 請選擇下列其中一個方法:

  • 使用工作區介面上傳 — 如果你使用 的是 Databricks 免費版,或是選項 B 的程式碼下載因網路錯誤失敗,請使用此方法。 Free Edition 和其他無伺服器運算環境限制了外接網際網路,因此你必須從本地機器上傳檔案。
  • 使用程式碼下載 ——如果您的運算環境有外接網路,請使用此方法。

選項A:使用工作區介面上傳

  1. 在你本機的電腦上,在瀏覽器開啟 health.data.ny.gov/api/views/jxy9-yhdk/rows.csv 。 檔案下載到你的電腦時,檔案名稱是 rows.csv
  2. 在你的電腦上找到下載的檔案,並將其重新命名為 rows.csvbaby_names.csv。 這與你在步驟 2 中定義的變數相符 file_name
  3. 回到你的 Azure Databricks 工作區。 在側邊欄點選 新圖示、新增 > 新增或上傳資料
  4. 點擊 「上傳檔案到磁碟區」。
  5. 點擊 瀏覽 並選擇 baby_names.csv 檔案,或將其拖曳到上傳區域。
  6. 目的地磁碟區,選擇你在步驟 2 中指定的磁碟區。
  7. 上傳完成後,回到筆記本繼續步驟 4

關於上傳檔案的更多細節,請參見 「上傳檔案至Unity Catalog volume」。

選項B:使用程式碼下載

  1. 請將下列程式碼複製並貼到全新空白筆記本資料格。 這段程式碼會用 rows.csv 指令,將檔案從 health.data.ny.gov 複製到 Unity 目錄卷。

  2. 按下 Shift+Enter 以執行儲存格,然後移至下一個儲存格。

    Python

    dbutils.fs.cp(f"{download_url}", f"{path_volume}" + "/" + f"{file_name}")
    

    程式語言 Scala

    dbutils.fs.cp(downloadUrl, s"${pathVolume}/${fileName}")
    

    R

    dbutils.fs.cp(download_url, paste(path_volume, "/", file_name, sep = ""))
    

步驟 4:將 CSV 資料載入到 DataFrame

在此步驟中,您會使用 spark.read.csv 方法,從之前載入到 Unity Catalog 磁碟區的 CSV 檔案中建立名為 df 的 DataFrame。

  1. 請將下列程式碼複製並貼到全新空白筆記本資料格。 此程式碼會從 CSV 檔案將嬰兒姓名資料載入到 DataFrame df

  2. 按下 Shift+Enter 以執行儲存格,然後移至下一個儲存格。

    Python

    df = spark.read.csv(f"{path_volume}/{file_name}",
      header=True,
      inferSchema=True,
      sep=",")
    

    程式語言 Scala

    val df = spark.read
        .option("header", "true")
        .option("inferSchema", "true")
        .option("delimiter", ",")
        .csv(s"${pathVolume}/${fileName}")
    

    R

    # Load the SparkR package that is already preinstalled on the cluster.
    library(SparkR)
    
    df <- read.df(paste(path_volume, "/", file_name, sep=""),
      source="csv",
      header = TRUE,
      inferSchema = TRUE,
      delimiter = ",")
    

您可以從許多支援的檔案格式載入資料。

步驟 5:視覺化筆記本中的資料

在此步驟中,使用 display() 方法在筆記本的資料表中顯示 DataFrame 的內容,然後在筆記本的文字雲圖表中視覺化資料。

  1. 複製下列程式碼並將其貼到新的空筆記本儲存格中,然後按一下 [執行儲存格] 以顯示資料表中的資料。

    Python

    display(df)
    

    程式語言 Scala

    display(df)
    

    R

    display(df)
    
  2. 檢閱資料表中的結果。

  3. 在 [資料表] 索引標籤旁邊,按一下 +,然後按一下 [視覺效果]

  4. 在視覺效果編輯器中,按一下 [視覺效果類型],並確認已選取 [文字雲]

  5. [文字資料行] 中,確認已選取 First Name

  6. 在 [頻率限制] 中,按一下 35

    文字雲圖表

  7. 按一下 [儲存]。

步驟 6:將 DataFrame 儲存至資料表

重要

若要將 DataFrame 儲存在 Unity Catalog 中,您必須具有目錄和結構描述上的 CREATE 資料表權限。 如需有關 Unity Catalog 中的權限的資訊,請參閱 Unity Catalog 中的權限和安全物件管理 Unity Catalog 中的權限

  1. 複製下列程式碼並貼到空的筆記本儲存格。 此程式碼會取代資料行名稱中的空格。 資料行名稱中不允許使用特殊字元,例如空格。 此程式碼使用 Apache Spark withColumnRenamed() 方法。

    Python

    df = df.withColumnRenamed("First Name", "First_Name")
    df.printSchema
    

    程式語言 Scala

    val dfRenamedColumn = df.withColumnRenamed("First Name", "First_Name")
    // when modifying a DataFrame in Scala, you must assign it to a new variable
    dfRenamedColumn.printSchema()
    

    R

    df <- withColumnRenamed(df, "First Name", "First_Name")
    printSchema(df)
    
  2. 複製下列程式碼並貼到空的筆記本儲存格。 此程式碼使用在本文開始時定義的資料表名稱變數在 Unity Catalog 中將 DataFrame 的內容儲存至資料表。

    Python

    df.write.mode("overwrite").saveAsTable(f"{path_table}" + "." + f"{table_name}")
    

    程式語言 Scala

    dfRenamedColumn.write.mode("overwrite").saveAsTable(s"${pathTable}.${tableName}")
    

    R

    saveAsTable(df, paste(path_table, ".", table_name), mode = "overwrite")
    
  3. 若要確認資料表已儲存,請按一下左側邊欄中的 [目錄],以開啟目錄總管 UI。 開啟目錄,然後開啟結構描述,以確認資料已出現。

  4. 按一下資料表,以檢視 [概觀] 索引標籤上的資料表結構描述。

  5. 按一下 [範例資料] 以檢視資料表中的 100 列資料。

匯入並視覺化數據筆記本

使用下列其中一個筆記本來執行本文章的步驟。 請將 <catalog-name><schema-name><volume-name> 替換為 Unity Catalog 磁碟區的目錄、結構描述和磁碟區名稱。 選擇性地以您選擇的資料表名稱取代 table_name 值。

Python

使用 Python 從 CSV 匯入資料

取得筆記本

程式語言 Scala

使用 Scala 從 CSV 匯入資料

取得筆記本

R

使用 R 從 CSV 匯入資料

取得筆記本

下一步

其他資源