Azure Databricks には、Apache Spark でネイティブでサポートされているすべてのデータ形式のキーワード バインドが組み込まれています。 Azure Databricks では、データとテーブルの読み取りと書き込みの既定のプロトコルとして Delta Lake を使用しますが、Apache Spark では Parquet を使用します。 以下のセクションでは、Azure Databricksで各データフォーマットを照会する際に利用可能なオプションと設定について説明します。
ほとんどの形式では、 compression オプションを使用した書き込み圧縮がサポートされています。 各フォーマットでサポートされている数値については、 DataFrameWriter オプションをご覧ください。 Azure Databricksは、多くの形式で事前圧縮されたファイルを直接読み取ることができ、必要に応じてAzure Databricksで圧縮ファイルを解凍することもできます。
Apache Spark データ ソースの詳細については、汎用読み込み/保存関数と汎用ファイル ソース オプションを参照してください。
オープンテーブル形式
ACIDトランザクション、スキーマの進化、エンジン間の相互運用性をサポートするテーブル形式。
| Format | Description |
|---|---|
| デルタ湖 | Azure Databricksでのデータやテーブルを読み書きするためのデフォルトのフォーマットです。 |
| アイスバーグ | Icebergのテーブルを読み書きし、外部のIcebergエンジンと相互運用できます。 |
| OpenSharing | オープンシェアリングプロトコルを使って共有テーブルやデータを読み取る。 |
列形式
解析的読み取り性能と圧縮に最適化されたバイナリカラム形式。
| Format | Description |
|---|---|
| パーケット | Apache Sparkがデフォルトで使用しているカラム形式は効率的な圧縮とエンコードを備えています。 |
| ORC | 内蔵圧縮機能と軽量インデックス対応を備えた列形式。 |
テキストベースの形式
データ交換、構成、記録向けの、柔軟または進化するスキーマを持つ人間が判読しやすい形式。
| Format | Description |
|---|---|
| JSON | マルチラインレコードやスキーマ推論のオプションを含むJSONファイルの読み書きが可能です。 |
| CSV | 区切られたテキストファイルの読み書きが可能で、ヘッダー、区切り符、誤形レコードのオプションがあります。 |
| XML | 行タグとスキーマを指定することでXMLファイルの読み書きを行います。 |
| テキスト | プレーンテキストファイルを一行ずつ読み書きします。 |
バイナリおよび特殊フォーマット
バイナリシリアライゼーションフォーマットとAzure Databricks固有のデータソース。
| Format | Description |
|---|---|
| Avro | Avroファイルを読み書きし、ストリーミングでAvroエンコードされたペイロードを扱うことができます。 |
| MLflow 実験 | カスタム mlflow-experiment キーワードを使用して、MLflow の実験実行データを読み込みます。 |
非構造化データ
文書、画像、音声、その他の非構造化ファイルの保存および処理のためのフォーマットとタイプ。
| Format | Description |
|---|---|
| 非構造化データの扱い | 文書、画像、音声などの非構造化データの保存、管理、処理を行います。 |
| バイナリ | 画像やその他の非構造化データを含む生のバイナリレコードとしてファイルを読み取ることができます。 |
| 画像 | 機械学習のワークロード用に画像データを読み込みます。 Databricksは画像を binary データとして読み込むことを推奨しています。 |
| ファイル |
BINARYやSTRINGを使う代わりに、非構造化ファイルへのガバネ付き参照を保存します。 |
| ファイルをファイル形式として取り込む | SQL、テーブル値関数、Auto Loaderを使って、非構造化ファイルを FILE 参照としてテーブルに取り込みます。 |
| UDF付きのプロセスファイル | ファイルバイトの読み取り、画像や映像のメタデータを抽出し、UDF付きの派生ファイルを生成します。 |
| FILE 関数 quickstart | Databricks SQLおよびDatabricks Runtimeで FILE 型とその関数を使い始めましょう。 |
半構造化データ
レイクハウス内の入れ子データや半構造化データを扱うためのパターンと関数。
| Format | Description |
|---|---|
| 半構造化データのモデル | 半構造化データを保存するために、Variant、JSON文字列、構造体、マップの中から選べます。 |
| Variant |
VARIANT型で半構造化データを保存し、読み書きを最適化します。 |
| 複合データ型を変換する | Apache Sparkで構造体、配列、マップを扱うことができます。 |
| 高階関数 | 組み込みの高階関数を使って配列や写像を変換します。 |