共用方式為


入門:從筆記本匯入並視覺化 CSV 資料

本文逐步引導您使用 Azure Databricks 筆記本將包含嬰兒姓名資料的 CSV 檔案中的資料從 health.data.ny.gov 匯入到 Unity Catalog 磁碟區 (使用 Python、Scala 和 R)。您還將了解如何修改資料行名稱、視覺化資料以及儲存至資料表。

需求

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

  • 工作區必須已啟用 Unity 目錄 。 如需開始使用 Unity 目錄的資訊,請參閱 設定與管理 Unity 目錄
  • 您必須具有磁碟區的 WRITE VOLUME 權限、家長結構描述的 USE SCHEMA 權限,以及家長目錄的 USE CATALOG 權限。
  • 您必須擁有使用現有計算資源或建立新計算資源的權限。 請參閱 開始使用:帳戶與工作區設定 ,或查看您的 Databricks 系統管理員。

提示

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

步驟 1:建立新的筆記本

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

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

步驟 2:定義變數

在此步驟中,您會定義變數,以用於本文中建立的範例筆記本。

  1. 請將下列程式碼複製並貼到全新空白筆記本資料格。 使用 Unity 目錄磁碟區的目錄、結構描述和磁碟區名稱取代 <catalog-name><schema-name><volume-name>。 選擇性地以您選擇的資料表名稱取代 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 磁碟區。

  1. 複製下列程式碼並粘貼到新的空筆記本儲存格中。 此程式碼使用 Databricks dbutuils 命令將 rows.csv 檔案從 health.data.ny.gov 複製到 Unity Catalog 磁碟區。

  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 列資料。

匯入並視覺化資料筆記本

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

Python

使用 Python 從 CSV 匯入資料

取得筆記本

Scala

使用 Scala 從 CSV 匯入資料

取得筆記本

R

使用 R 從 CSV 匯入資料

取得筆記本

下一步

其他資源