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

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)