メインコンテンツまでスキップ

バイナリファイル

Databricks Runtime は、バイナリ ファイルを 読み込み、各ファイルを 1 つのファイルに変換する binary file データソースをサポートしています ファイルの未加工のコンテンツとメタデータを含むレコード。 バイナリ・ファイル・データソースは、次のカラムと場合によってはパーティション・カラムを含む DataFrame を生成します。

  • path (StringType): ファイルのパス。
  • modificationTime (TimestampType): ファイルの変更時刻。一部の Hadoop FileSystem 実装では、このパラメーターが使用できず、値がデフォルト値に設定される場合があります。
  • length (LongType): ファイルの長さ (バイト単位)。
  • content (BinaryType): ファイルの内容。

バイナリファイルを読み取るには、データソース formatbinaryFileとして指定します。

画像

Databricks では、バイナリ ファイル データソース を使用してイメージ データをロードすることをお勧めします。

Databricks display関数は、バイナリデータソースを使用してロードされた画像データの表示をサポートしています。

読み込まれたすべてのファイルのファイル名に 画像拡張子が付いている場合、画像のプレビューは自動的に有効になります。

Python
df = spark.read.format("binaryFile").load("<path-to-image-dir>")
display(df) # image thumbnails are rendered in the "content" column

画像プレビュー

または、文字列値 "image/*"mimeType オプションを使用してバイナリ列に注釈を付けることで、イメージ プレビュー機能を強制することもできます。画像は、バイナリ コンテンツ内の形式情報に基づいてデコードされます。 サポートされているイメージ タイプは、 bmpgifjpeg、および pngです。 サポートされていないファイルは、壊れた画像アイコンとして表示されます。

Python
df = spark.read.format("binaryFile").option("mimeType", "image/*").load("<path-to-dir>")
display(df) # unsupported files are displayed as a broken image icon

サポートされていないファイルタイプの画像プレビュー

画像データの処理に推奨されるワークフローについては、 画像アプリケーションのリファレンス ソリューション を参照してください。

オプション

パーティション検出の動作を維持しながら、特定の glob パターンに一致するパスを持つファイルをロードするには、 pathGlobFilter オプションを使用できます。 次のコードは、すべての JPG ファイルを パーティション検出を含む入力ディレクトリ:

Python
df = spark.read.format("binaryFile").option("pathGlobFilter", "*.jpg").load("<path-to-dir>")

パーティションの検出を無視して、入力ディレクトリの下のファイルを再帰的に検索する場合は、 recursiveFileLookup オプションを使用します。 このオプションは、ネストされたディレクトリを検索します 名前 date=2019-07-01.次のコードは、入力ディレクトリからすべての JPG ファイルを再帰的に読み取り、パーティションの検出を無視します。

Python
df = spark.read.format("binaryFile") \
.option("pathGlobFilter", "*.jpg") \
.option("recursiveFileLookup", "true") \
.load("<path-to-dir>")

APIsScala、Java 、およびRにも同様の が存在します。

注記

データを読み込み直すときの読み取りパフォーマンスを向上させるために、Databricks では、Delta テーブルを使用してバイナリ ファイルから読み込まれたデータを保存することをお勧めします。

Python
df.write.save("<path-to-table>")