入門:從筆記本匯入並視覺化 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:定義變數
在此步驟中,您會定義變數,以用於本文中建立的範例筆記本。
請將下列程式碼複製並貼到全新空白筆記本資料格。 使用 Unity 目錄磁碟區的目錄、結構描述和磁碟區名稱取代
<catalog-name>
、<schema-name>
和<volume-name>
。 選擇性地以您選擇的資料表名稱取代table_name
值。 本文稍後會將嬰兒姓名資料儲存到此資料表中。按
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 dbutuils 命令將
rows.csv
檔案從 health.data.ny.gov 複製到 Unity Catalog 磁碟區。按下
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。
複製下列程式碼並粘貼到新的空筆記本儲存格中。 此程式碼會從 CSV 檔案將嬰兒姓名資料載入到 DataFrame
df
。按下
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 的內容,然後在筆記本的文字雲圖表中視覺化資料。
複製下列程式碼並將其貼到新的空筆記本儲存格中,然後按一下 [執行儲存格] 以顯示資料表中的資料。
Python
display(df)
Scala
display(df)
R
display(df)
檢閱資料表中的結果。
在 [資料表] 索引標籤旁邊,按一下 +,然後按一下 [視覺效果]。
在視覺效果編輯器中,按一下 [視覺效果類型],並確認已選取 [文字雲]。
在 [文字資料行] 中,確認已選取
First Name
。在 [頻率限制] 中,按一下
35
。按一下 [檔案] 。
步驟 6:將 DataFrame 儲存至資料表
重要
若要將 DataFrame 儲存在 Unity Catalog 中,您必須具有目錄和結構描述上的 CREATE
資料表權限。 如需有關 Unity Catalog 中的權限的資訊,請參閱 Unity Catalog 中的權限和安全物件和管理 Unity Catalog 中的權限。
複製下列程式碼並貼到空的筆記本儲存格。 此程式碼會取代資料行名稱中的空格。 資料行名稱中不允許使用特殊字元,例如空格。 此程式碼使用 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)
複製下列程式碼並貼到空的筆記本儲存格。 此程式碼使用在本文開始時定義的資料表名稱變數在 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")
若要確認資料表已儲存,請按一下左側邊欄中的 [目錄],以開啟目錄總管 UI。 開啟目錄,然後開啟結構描述,以確認資料已出現。
按一下資料表,以檢視 [概觀] 索引標籤上的資料表結構描述。
按一下 [範例資料] 以檢視資料表中的 100 列資料。
匯入並視覺化資料筆記本
使用下列其中一個筆記本來執行本文章的步驟。 使用 Unity 目錄磁碟區的目錄、結構描述和磁碟區名稱取代 <catalog-name>
、<schema-name>
和 <volume-name>
。 選擇性地以您選擇的資料表名稱取代 table_name
值。
Python
使用 Python 從 CSV 匯入資料
Scala
使用 Scala 從 CSV 匯入資料
R
使用 R 從 CSV 匯入資料
下一步
- 若要了解如何從 CSV 檔案將其他資料新增到現有資料表,請參閱入門:內嵌和插入其他資料。
- 若要了解清理和增強資料,請參閱入門:增強和清理資料。