データ パイプラインのソース データを探索する
データ パイプラインを作成する際の一般的な最初の手順は、パイプラインのソース データを理解することです。 この手順では、ノートブックで Databricks ユーティリティ コマンドを実行して、ソース データと成果物を調べます。
探索的データ分析の詳細については、「Azure Databricks の探索的データ分析: ツールと手法」 を参照してください。
Video: Databricks ノートブックの概要
Databricks ノートブックの概要については、次のビデオをご覧ください。
データ探索ノートブックを作成する
サイドバーで、 [新規] をクリックし、メニューから [ノートブック] を選択します。 ノートブックが開き、置き換えることができる既定の名前が表示されます。
ノートブックの名前を入力します (例:
Explore songs data
)。 既定での動作は次のとおりです。- 選択された言語は Python です。
- ノートブックは、最後に使用したクラスターにアタッチされます。 この場合、「手順 1: クラスターを作成する」で作成したクラスターです。
データセットを含むディレクトリの内容を表示するには、ノートブックの最初のセルに次のように入力し、 をクリックして、[セルの実行] を選びます。
%fs ls "/databricks-datasets/songs"
path name size modificationTime dbfs:/databricks-datasets/songs/README.md README.md 1719 1454620183000 dbfs:/databricks-datasets/songs/data-001/ data-001/ 0 1672791237846 dbfs:/databricks-datasets/songs/data-002/ data-002/ 0 1672791237846
データを検索する
README ファイルには、データ スキーマの説明など、データセットに関する情報が含まれています。 スキーマ情報は、次の手順でデータを取り込むときに使用されます。 README の内容を表示するには、セルの操作メニューで をクリックし、[下にセルを追加] を選び、新しいセルに次のように入力して、 をクリックし、[セルの実行] を選びます。
%fs head --maxBytes=10000 "/databricks-datasets/songs/README.md"
Sample of Million Song Dataset =============================== ## Source This data is a small subset of the [Million Song Dataset](http://labrosa.ee.columbia.edu/millionsong/). The original data was contributed by The Echo Nest. Prepared by T. Bertin-Mahieux <tb2332 '@' columbia.edu> ## Attribute Information - artist_id:string - artist_latitude:double - artist_longitude:double - artist_location:string - artist_name:string - duration:double - end_of_fade_in:double - key:int - key_confidence:double - loudness:double - release:string - song_hotnes:double - song_id:string - start_of_fade_out:double - tempo:double - time_signature:double - time_signature_confidence:double - title:string - year:double - partial_sequence:int ...
この例で使用するレコードは、
/databricks-datasets/songs/data-001/
ディレクトリにあります。 このディレクトリの内容を表示するには、セルの操作メニューで をクリックし、[下にセルを追加] を選び、新しいセルに次のように入力して、 をクリックし、[セルの実行] を選びます。%fs ls "/databricks-datasets/songs/data-001"
path name size modificationTime dbfs:/databricks-datasets/songs/data-001/header.txt header.txt 377 1454633901000 dbfs:/databricks-datasets/songs/data-001/part-00000 part-00000 52837 1454547464000 dbfs:/databricks-datasets/songs/data-001/part-00001 part-00001 52469 1454547465000 README とファイル名はファイル形式を示していないため、各レコードの内容と形式をよりよく理解するために、レコードのサンプルを表示できます。 いずれかのデータファイルの最初の 10 レコードを読み取って表示するには、セルの操作メニューで をクリックし、[下にセルを追加] を選び、新しいセルに次のように入力して、 をクリックし、[セルの実行] を選びます。
%fs head --maxBytes=10000 "/databricks-datasets/songs/data-001/part-00000"
AR81V6H1187FB48872 nan nan Earl Sixteen 213.7073 0.0 11 0.419 -12.106 Soldier of Jah Army nan SOVNZSZ12AB018A9B8 208.289 125.882 1 0.0 Rastaman 2003 -- ARVVZQP11E2835DBCB nan nan Wavves 133.25016 0.0 0 0.282 0.596 Wavvves 0.471578247701 SOJTQHQ12A8C143C5F 128.116 89.519 1 0.0 I Want To See You (And Go To The Movies) 2009 -- ARFG9M11187FB3BBCB nan nan Nashua USA C-Side 247.32689 0.0 9 0.612 -4.896 Santa Festival Compilation 2008 vol.1 nan SOAJSQL12AB0180501 242.196 171.278 5 1.0 Loose on the Dancefloor 0 225261 ...
レコードのサンプルを表示することで、データに関するいくつかのことを確認できます。 これらの観測値は、後でデータを処理するときに使用します。
- レコードにヘッダーは含まれていません。 代わりに、ヘッダーは同じディレクトリ内の別のファイルに格納されています。
- ファイルはタブ区切り値 (TSV) 形式で表示されます。
- 一部のフィールドが不足しているか、無効です。
- レコードにヘッダーは含まれていません。 代わりに、ヘッダーは同じディレクトリ内の別のファイルに格納されています。
データをさらに探索して分析するには、これらの観察を使用して、TSV 形式の曲データを PySpark DataFrame に読み込みます。 これを行うには、セルの操作メニューで をクリックし、[下にセルを追加] を選び、新しいセルに次のように入力して、>セルの実行 をクリックします。
df = spark.read.format('csv').option("sep", "\t").load('dbfs:/databricks-datasets/songs/data-001/part-00000') df.display()
データ ファイルにヘッダーがないため、列名は
_c0
、_c1
のように表示されます。 各列は、実際のデータ型に関係なくstring
として解釈されます。 次の手順 の生データの取り込みでは、データを読み込むときに有効なスキーマを適用する方法の例を示します。