Databricksクイックスタートガイドのコンテンツです。
Introduction to importing, reading, and modifying data | Databricks on AWS [2021/3/17時点]の翻訳です。
本記事では、UIを使ってどのようにデータをDatabricksにインポートするのか、Spark、ローカルAPIを用いてインポートしたデータをどのように読み込むのか、Databricks File System (DBFS)コマンドを用いてどのようにデータを変更するのかを説明します。
データのインポート
手元のマシンにある小規模なデータをDatabricksで分析したい場合には、UIを用いてDBFSにデータをインポートすることができます。
注意
この機能は管理者によって無効にされている場合があります。この機能を有効・無効にする方法に関しては、Manage data upload(英語)を参照ください。
UIを使ってDBFSにデータをアップロードする方法は2つあります:
-
Upload Data UIでファイルをFileStoreにアップロードする。
-
Create table UI(英語)でデータをテーブルにアップロードする。こちらは、ランディングページのImport & Explore Dataからもアクセスできます。
これらの方法でインポートされたファイルはFileStore(英語)に格納されます。
実運用環境においては、DBFS CLI(英語)、DBFS API(英語)、Databricks file system utilities (dbutils.fs)(英語)を用いて、明示的にファイルをアップロードすることをお勧めします。
データにアクセスするための様々なデータソースもご確認ください。
Spark APIを用いてクラスターノードでデータを読み込む
Spark API(英語)を用いてDBFSにインポートされたデータをApache Sparkデータフレームに読む込みます。例えば、CSVファイルをインポートしたのであれば、これらの例を用いてデータを読み込むことができます。
ティップス
簡単にアクセスできるように、テーブルを作成することをお勧めします。詳細はDatabases and tables(英語)を参照ください。
Python
sparkDF = spark.read.csv('/FileStore/tables/state_income-9f7c5.csv', header="true", inferSchema="true")
R
sparkDF <- read.df(source = "csv", path = "/FileStore/tables/state_income-9f7c5.csv", header="true", inferSchema = "true")
Scala
val sparkDF = spark.read.format("csv")
.option("header", "true")
.option("inferSchema", "true")
.load("/FileStore/tables/state_income-9f7c5.csv")
ローカルAPIを用いてクラスターノードでデータを読み込む
また、DBFSにインポートされたデータを、ローカルファイルAPIを用いてSparkのドライバーノードで動作するプログラムで読み込むことができます。例えば:
Python
pandas_df = pd.read_csv("/dbfs/FileStore/tables/state_income-9f7c5.csv", header='infer')
R
df = read.csv("/dbfs/FileStore/tables/state_income-9f7c5.csv", header = TRUE)
アップロードしたデータの編集
Databricksでインポートしたデータを直接編集することはできません、しかし、Spark APIs(英語)、DBFS CLI(英語)、DBFS API(英語)、Databricks file system utilities (dbutils.fs)(英語)を用いてデータを上書きすることができます。
DBFSからデータを削除するには、上記のツール、APIを使用します。例えば、Databricks Utilities(英語)のdbutils.fs.rm
コマンドを使用します:
Python
dbutils.fs.rm("dbfs:/FileStore/tables/state_income-9f7c5.csv", true)
警告!
削除したデータを復元することはできません。