概要: ノートブックから CSV データをインポートして視覚化する
この記事では、Azure Databricks ノートブックを使用し、Python、Scala、R を使用して health.data.ny.gov の乳児の名前データを含む CSV ファイルから Unity Catalog ボリュームにデータをインポートする方法を説明します。また、列名の変更、データの視覚化、テーブルへの保存を行う方法も学習します。
要件
この記事のタスクを完了するには、次の要件を満たす必要があります。
- ワークスペースで Unity Catalog が有効になっている必要があります。 Unity Catalog の概要については、「Unity Catalog の設定と管理」を参照してください。
- ボリュームの
WRITE VOLUME
権限、親スキーマのUSE SCHEMA
権限、親カタログのUSE CATALOG
権限が必要です。 - 既存のコンピューティング リソースを使用するか、新しいコンピューティング リソースを作成するためのアクセス許可が必要です。 「はじめに: アカウントとワークスペースのセットアップ」を参照するか、Databricks 管理者に問い合わせてください。
ヒント
この記事の完成したノートブックについては、「データのインポートと視覚化に関するノートブック」を参照してください。
手順 1: 新しいノートブックを作成する
ワークスペースにノートブックを作成するには、サイドバーの [新規] をクリックしてから、[ノートブック] をクリックします。 ワークスペースに空のノートブックが開きます。
ノートブックの作成と管理について詳しくは、「Notebooks を管理する」を参照してください。
手順 2: 変数を定義する
この手順では、この記事で作成するノートブックの例で使用する変数を定義します。
次のコードをコピーして、新しい空のノートブック セルに貼り付けます。
<catalog-name>
、<schema-name>
、<volume-name>
を、Unity Catalog ボリュームのカタログ、スキーマ、ボリュームの名前に置き換えます。 オプションとして、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 dbutils コマンドを使って、health.data.ny.gov から Unity Catalog ボリュームに
rows.csv
ファイルをコピーします。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)
次のコードをコピーして、空のノートブック セルに貼り付けます。 このコードでは、この記事の冒頭で定義したテーブル名変数を使用して、DataFrame の内容を Unity Catalog のテーブルに保存します。
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")
テーブルが保存されたことを確認するには、左側のサイドバーの [カタログ] をクリックして、Catalog Explorer UI を開きます。 カタログを開いてから、スキーマを開いてテーブルが表示されることを確認します。
テーブルをクリックし、[概要] タブでテーブル スキーマを表示します。
[サンプル データ] をクリックし、テーブルの 100 行のデータを表示します。
データのインポートと視覚化に関するノートブック
この記事の手順を実行するには、次のいずれかのノートブックを使用します。 <catalog-name>
、<schema-name>
、<volume-name>
を、Unity Catalog ボリュームのカタログ、スキーマ、ボリュームの名前に置き換えます。 オプションとして、table_name
を、任意のテーブル名に置き換えます。
Python
Python を使用して CSV からデータをインポートする
Scala
Scala を使用して CSV からデータをインポートする
R
R を使用して CSV からデータをインポートする
次のステップ
- CSV ファイルから既存のテーブルにデータを追加する方法については、「概要: 追加データを取り込んで挿入する」を参照してください。
- データのクレンジングと拡張の詳細については、「概要: データの強化とクレンジング」を参照してください。