メインコンテンツまでスキップ

チュートリアル: ノートブックから CSV データをインポートして視覚化する

この記事では、Databricks ノートブックを使用して、Python、Scala、R を使用して、health.data.ny.gov の赤ちゃんの名前データを含む CSV ファイルから Unity Catalog ボリュームにデータをインポートする方法について説明します。 また、列名の変更、データの視覚化、およびテーブルへの保存についても学習します。

必要条件

この記事のタスクを完了するには、次の要件を満たす必要があります。

  • ワークスペースで Unity Catalog が有効になっている必要があります。 Unity Catalogの使用を開始する方法については、「Unity Catalogの設定と管理」を参照してください。
  • ボリュームに対する WRITE VOLUME 権限、親スキーマに対する USE SCHEMA 権限、および親カタログに対する USE CATALOG 権限が必要です。
  • 既存のコンピュート リソースを使用するか、新しいコンピュート リソースを作成するには、アクセス許可が必要です。 「Databricks の使用を開始するチュートリアル」を参照するか、Databricks 管理者に問い合わせてください。
ヒント

この記事の完成したノートブックについては、「 データ ノートブックのインポートと視覚化」を参照してください。

ステップ 1: 新しいノートブックを作成する

ワークスペースにノートブックを作成するには、サイドバーの「新しいアイコン 新規 」をクリックし、「 ノートブック 」をクリックします。空白のノートブックがワークスペースで開きます。

ノートブックの作成と管理の詳細については、「 ノートブックの管理」を参照してください。

ステップ 2: 変数を定義する

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

  1. 次のコードをコピーして、新しい空のノートブック セルに貼り付けます。 <catalog-name><schema-name>、および <volume-name> を、Unity Catalog ボリュームのカタログ、スキーマ、およびボリューム名に置き換えます。必要に応じて、 table_name 値を任意のテーブル名に置き換えます。 赤ちゃんの名前のデータは、この記事の後半でこのテーブルに保存します。

  2. Shift+Enterを押すとセルが実行され、新しい空白のセルが作成されます。

    タブ :::タブ-item[Python]

    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

    :::

    タブ-item[Scala]

    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]

    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ファイルをインポートする

このステップでは、 health.data.ny.gov から赤ちゃんの名前データを含む CSV ファイルを Unity Catalog ボリュームにインポートします。

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

  2. Shift+Enterを押してセルを実行し、次のセルに移動します。

    タブ :::タブ-item[Python]

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

    :::

    タブ-item[Scala]

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

    :::

    :::タブアイテム[r]

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

    ::: ::::

ステップ 4: CSV データを データフレーム に読み込む

このステップでは、spark.read.csvメソッドを使用して、以前にUnity CatalogボリュームにロードしたCSVファイルからdfという名前のデータフレームを作成します。

  1. 次のコードをコピーして、新しい空のノートブックセルに貼り付けます。このコードは、CSVファイルからデータフレーム「df」に赤ちゃんの名前データをロードします。

  2. Shift+Enterを押してセルを実行し、次のセルに移動します。

    タブ :::タブ-item[Python]

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

    :::

    タブ-item[Scala]

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

    :::

    :::タブアイテム[r]

    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()メソッドを使用してデータフレームの内容をノートブックのテーブルに表示し、ノートブックのワードクラウドチャートでデータを可視化します。

  1. 次のコードをコピーして、新しい空のノートブックのセルに貼り付け、 [セルを実行] をクリックしてデータをテーブルに表示します。

    タブ :::タブ-item[Python]

    Python
    display(df)

    :::

    タブ-item[Scala]

    Scala
    display(df)

    :::

    :::タブアイテム[r]

    R
    display(df)

    ::: ::::

  2. テーブルの結果を確認します。

  3. テーブル タブの横にある + をクリックし、 ビジュアライゼーション をクリックします。

  4. 可視化エディタで、 [ビジュアライゼーションの種類] をクリックし、 [ワードクラウド] が選択されていることを確認します。

  5. [単語列] で [First Name] が選択されていることを確認します。

  6. [頻度制限] で [35] をクリックします。

    ワードクラウドチャート

  7. [ 保存 ]をクリックします。

ステップ 6: データフレーム をテーブルに保存する

important

データフレームを Unity Catalogに保存するには、カタログとスキーマに対する CREATE テーブル権限が必要です。Unity Catalogの権限については、Unity Catalogの権限とセキュリティ保護可能なオブジェクトおよびUnity Catalogの権限の管理を参照してください。

  1. 次のコードをコピーして、空のノートブック セルに貼り付けます。 このコードは、列名のスペースを置き換えます。 スペースなどの特殊文字は、列名には使用できません。このコードでは、Apache Spark withColumnRenamed() メソッドを使用します。

    タブ :::タブ-item[Python]

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

    :::

    タブ-item[Scala]

    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]

    R
    df <- withColumnRenamed(df, "First Name", "First_Name")
    printSchema(df)

    ::: ::::

  2. 次のコードをコピーして、ノートブックの空のセルに貼り付けます。このコードは、この記事の冒頭で定義したテーブル名変数を使用して、データフレームの内容をUnity Catalogのテーブルに保存します。

    タブ :::タブ-item[Python]

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

    :::

    タブ-item[Scala]

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

    :::

    :::タブアイテム[r]

    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を使用してCSVからデータをインポートする

Open notebook in new tab

次のステップ

追加のリソース