次の方法で共有


概要: ノートブックから 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: 変数を定義する

この手順では、この記事で作成するノートブックの例で使用する変数を定義します。

  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 ボリュームにインポートします。

  1. 次のコードをコピーして、新しい空のノートブック セルに貼り付けます。 このコードでは、Databricks dbutils コマンドを使って、health.data.ny.gov から Unity Catalog ボリュームに rows.csv ファイルをコピーします。

  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. 次のコードをコピーして、空のノートブック セルに貼り付けます。 このコードでは、この記事の冒頭で定義したテーブル名変数を使用して、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")
    
  3. テーブルが保存されたことを確認するには、左側のサイドバーの [カタログ] をクリックして、Catalog Explorer UI を開きます。 カタログを開いてから、スキーマを開いてテーブルが表示されることを確認します。

  4. テーブルをクリックし、[概要] タブでテーブル スキーマを表示します。

  5. [サンプル データ] をクリックし、テーブルの 100 行のデータを表示します。

データのインポートと視覚化に関するノートブック

この記事の手順を実行するには、次のいずれかのノートブックを使用します。 <catalog-name><schema-name><volume-name> を、Unity Catalog ボリュームのカタログ、スキーマ、ボリュームの名前に置き換えます。 オプションとして、table_name を、任意のテーブル名に置き換えます。

Python

Python を使用して CSV からデータをインポートする

ノートブックを入手

Scala

Scala を使用して CSV からデータをインポートする

ノートブックを入手

R

R を使用して CSV からデータをインポートする

ノートブックを入手

次のステップ

その他のリソース