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

テキストファイルの読み取りと書き込み

text形式では、テキストファイルの各行を、StringType型の単一のvalueカラムを持つデータフレームの行として読み取ります。Databricksユーザーは、ログ解析、さらなる処理を行う前の生データの取り込み、またはファイルコンテンツへの行ごとのアクセスを必要とするあらゆるワークフローで、Databricksをよく利用します。Databricksは、書き込み圧縮を含む、Apache Sparkによるテキストファイルの読み取りと書き込みをサポートしています。

前提条件

Databricks は、テキストファイルを使用するために、追加の構成を必要としません。しかし、テキストファイルをストリームするには、「Auto Loader」が必要です。

オプション

テキストデータソースを設定するには、 DataFrameReaderDataFrameWriter.option().options()メソッドを使用します。サポートされているオプションの完全なリストについては、 DataFrameReaderテキストオプションDataFrameWriterテキストオプションを参照してください。

使い方

次の例では、Wanderbricksデータセットを使用して、Spark DataFrame APIおよびSQLを使ったテキストファイルの読み取りと書き込みを示します。

SQLを使用してテキストファイルを読み取ります

テーブルを登録せずにテキストファイルをクエリするには、read_filesを使用します。Unity Catalog の外部ロケーションに対するアクセス許可は自動的に適用されます。

SQL
SELECT * FROM read_files(
'/Volumes/<catalog>/<schema>/<volume>/review_comments',
format => 'text'
)

テキストファイルの読み取りと書き込み

text 形式では、単一の StringType 列を持つ DataFrame が必要です。次の例では、Wanderbricks のレビューコメントをテキストファイルとして書き込み、その後読み戻します。

Python
from pyspark.sql.functions import col

# Write wanderbricks review comments as a text file
df = spark.read.table("samples.wanderbricks.reviews").select(col("comment").alias("value"))
df.write.format("text").save("/Volumes/<catalog>/<schema>/<volume>/review_comments")

# Read a text file — each line becomes a row in the "value" column
df = spark.read.format("text").load("/Volumes/<catalog>/<schema>/<volume>/review_comments")
display(df)

その他のリソース

  • CSVファイルの読み書き: テキストデータが区切り形式または表形式の場合、CSVはスキーマ推論、ヘッダーサポート、設定可能な区切り文字により構造化解析を提供します。