インターネットからデータをダウンロードする
この記事では、インターネットから Databricks にデータを追加するためのパターンについて説明します。
Databricks は、インターネットからデータをダウンロードするためのネイティブ ツールを提供していませんが、サポートされている言語のオープンソース ツールを使用して、ノートブックを使用してファイルをダウンロードできます。
Databricks では、表形式以外のすべてのデータを格納するために Unity Catalog ボリュームを使用することをお勧めします。 オプションで、ダウンロード時にボリュームを宛先として指定したり、ダウンロード後にデータをボリュームに移動したりできます。
注:
出力パスを指定しない場合、ほとんどのオープンソースツールはエフェメラルストレージ内のディレクトリを対象とします。 「 エフェメラルストレージへのファイルのダウンロード」を参照してください。
ボリュームはランダム書き込みをサポートしていません。 ダウンロードしたファイルを解凍する必要がある場合、Databricks では、ファイルをエフェメラル ストレージにダウンロードし、解凍してからボリュームに移動することをお勧めします。 「Zip 圧縮ファイルの展開と読み取り」を参照してください。
クラウドオブジェクトストレージからデータにアクセスする場合は、Apache Spark を使用してデータに直接アクセスすると、より良い結果が得られます。 「データソースへの接続」を参照してください。
一部のワークスペース構成では、パブリック インターネットにアクセスできない場合があります。 拡張されたネットワークアクセスが必要な場合は、ワークスペース管理者に問い合わせてください。
ファイルをボリュームにダウンロードする
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")