インターネットから データをダウンロードする

Databricks ノートブックを使用して、パブリック URL からデータをダウンロードできます。 Databricks 、インターネットからデータをダウンロードするためのネイティブ ツールは提供されていませんが、サポートされている言語で OSS ツールを使用できます。 クラウド オブジェクト ストレージからデータにアクセスする場合は、Apache Spark を使用してデータに直接アクセスすると、より良い結果が得られます。 「情報ソースへの接続」を参照してください。

Databricksクラスターは、 Apache Sparkコマンドに加えて任意のコードを実行できる汎用コンピュートを提供します。 任意のコマンドは、デフォルトでドライバーに接続された一時ストレージに結果を保存します。 Apache Spark は一時ストレージから読み取ることができないため、ダウンロードしたデータを Apache Spark で読み取る前に新しい場所に移動する必要があります。 「Databricks でのファイルの操作」を参照してください。

Databricks 、すべての非表形式データを保存するにはUnity Catalogボリュームを使用することをお勧めします。 必要に応じて、ダウンロード中にデスティネーションとしてボリュームを指定したり、ダウンロード後にデータをボリュームに移動したりできます。 ボリュームはランダム書き込みをサポートしていないため、ファイルをダウンロードしてエフェメラルストレージに解凍してから、ボリュームに移動してください。 Zip圧縮ファイルを展開して読み取るを参照してください。

一部のワークスペース構成では、パブリック インターネットへのアクセスが妨げられる場合があります。 拡張ネットワーク アクセスが必要な場合は、ワークスペース管理者に問い合わせてください。

ファイルをボリュームにダウンロードする

Databricks では、すべての非表形式データを Unity Catalog ボリュームに保存することを推奨しています。

次の例では、Bash、Python、Scala のパッケージを使用して、ファイルを Unity Catalog ボリュームにダウンロードします。

%sh curl https://data.cityofnewyork.us/api/views/kk4q-3rt2/rows.csv --output /Volumes/my_catalog/my_schema/my_volume/curl-subway.csv
import urllib
urllib.request.urlretrieve("https://data.cityofnewyork.us/api/views/kk4q-3rt2/rows.csv", "/Volumes/my_catalog/my_schema/my_volume/python-subway.csv")
import java.net.URL
import java.io.File
import org.apache.commons.io.FileUtils

FileUtils.copyURLToFile(new URL("https://data.cityofnewyork.us/api/views/kk4q-3rt2/rows.csv"), new File("/Volumes/my_catalog/my_schema/my_volume/scala-subway.csv"))

ファイルをエフェメラルストレージにダウンロードする

次の例では、Bash、Python、Scala のパッケージを使用して、ドライバーに接続された一時ストレージにファイルをダウンロードします。

%sh curl https://data.cityofnewyork.us/api/views/kk4q-3rt2/rows.csv --output /tmp/curl-subway.csv
import urllib
urllib.request.urlretrieve("https://data.cityofnewyork.us/api/views/kk4q-3rt2/rows.csv", "/tmp/python-subway.csv")
import java.net.URL
import java.io.File
import org.apache.commons.io.FileUtils

FileUtils.copyURLToFile(new URL("https://data.cityofnewyork.us/api/views/kk4q-3rt2/rows.csv"), new File("/tmp/scala-subway.csv"))

これらのファイルはドライバーにアタッチされたエフェメラル ストレージにダウンロードされるため、次の例のように、 %sh を使用してこれらのファイルを表示します。

%sh ls /tmp/

次の例のように、Bash コマンドを使用して、この方法でダウンロードしたファイルの内容をプレビューできます。

%sh head /tmp/curl-subway.csv

dbutils を使用したデータの移動

Apache Spark を使用してデータにアクセスするには、データを一時ストレージからクラウド オブジェクト ストレージに移動する必要があります。 Databricks では、クラウド オブジェクト ストレージへのすべてのアクセスを管理するためにボリュームを使用することを推奨しています。 「情報ソースへの接続」を参照してください。

Databricksユーティリティ(dbutils) を使用すると、ドライバーに接続された一時ストレージからUnity Catalogボリュームなどの他の場所にファイルを移動できます。 次の例では、サンプルボリュームにデータを移動します。

dbutils.fs.mv("file:/tmp/curl-subway.csv", "/Volumes/my_catalog/my_schema/my_volume/subway.csv")

ダウンロードしたデータの読み取り

データをボリュームに移動した後は、通常どおりデータを読み取ることができます。 次のコードは、ボリュームに移動された CSV データを読み取ります。

df = spark.read.format("csv").option("header", True).load("/Volumes/my_catalog/my_schema/my_volume/subway.csv")
display(df)