Amazon S3 Select
Amazon S3 Select では、オブジェクトから必要なデータのみを取得できます。 Databricks S3 Select コネクタは、S3 Select を利用する Apache Spark データソースを提供します。 S3 Select データソースを使用すると、DataFrame のフィルターと列の選択がプッシュダウンされ、S3 データ帯域幅が節約されます。
制限事項
Amazon S3 Select は、以下のファイル形式をサポートしています。
CSV ファイルと JSON ファイル
UTF-8 エンコード
GZIPまたは圧縮なし
Databricks S3 Select コネクタには、次の制限があります。
複合型 (配列とオブジェクト) は JSON では使用できません
スキーマ推論はサポートされていません
ファイル分割はサポートされていませんが、複数行レコードはサポートされています
DBFS マウント ポイントはサポートされていません
重要
DatabricksS3AFileSystem
Databrickss3a://
では、 のs3://
、 、およびs3n://
ファイル システム スキームのデフォルトである、 が提供するDatabricks Runtime を使用することを強くお勧めします。S3AFileSystem
への移行に関してサポートが必要な場合は、Databricks サポートまたは Databricks アカウント チームにお問い合わせください。
使用方法
sc.read.format("s3select").schema(...).options(...).load("s3://bucket/filename")
CREATE TABLE name (...) USING S3SELECT LOCATION 's3://bucket/filename' [ OPTIONS (...) ]
ファイル名拡張子が .csv
または .json
の場合、形式は自動的に検出されます。それ以外の場合は、 FileFormat
オプションを指定する必要があります。
オプション
このセクションでは、すべてのファイルタイプのオプションと、CSV と JSON に固有のオプションについて説明します。
ジェネリックオプション
オプション名 |
デフォルト値 |
説明 |
---|---|---|
ファイル形式 |
'自動' |
入力ファイルの種類 ('auto'、'csv'、または 'JSON') |
CompressionType |
'なし' |
入力ファイルで使用される圧縮コーデック ('none' または 'gzip') |
CSV 固有のオプション
オプション名 |
デフォルト値 |
説明 |
---|---|---|
nullValue |
'' |
入力の null 値を表す文字列 |
header |
偽 |
入力の最初の行をスキップするかどうか (潜在的なヘッダーの内容は無視されます) |
Comment |
'#' |
このパラメーターの値で始まる行は無視されます |
RecordDelimiter |
'n' |
ファイル内のレコードを区切る文字 |
Delimiter |
',' |
レコード内のフィールドを区切る文字 |
quote |
'"' |
予約文字を含む値を引用するために使用される文字 |
escape |
'"' |
引用符で囲まれた引用符文字をエスケープするために使用される文字 |
AllowQuotedRecordDelimiter |
偽 |
引用符付きレコード区切り文字を値に含めることができるかどうか |
S3 認証
Databricks で使用できる S3 認証方法 (キーとインスタンス プロファイル) を使用できます。インスタンスプロファイルを使用することをお勧めします。 資格情報を提供するには、次の 3 つの方法があります。
デフォルト Credential Provider Chain (推奨オプション): AWS 認証情報は、 DefaultAWSCredentialsProviderChain を通じて自動的に取得されます。 インスタンスプロファイルを使用して S3 への認証を行う場合は、この方法を使用する必要があります。 資格情報を提供する他の方法 (方法 2 と 3) は、このデフォルトよりも優先されます。
Hadoop confでキーを設定します。Hadoop 設定プロパティで AWS キーを指定します。
重要
AWS keys を使用して S3 にアクセスする場合は、次の例に示すように、常に設定プロパティ
fs.s3n.awsAccessKeyId
とfs.s3n.awsSecretAccessKey
を設定します。プロパティfs.s3a.access.key
とfs.s3a.secret.key
はサポートされていません。s3a://
ファイルシステムを参照するには、Hadoop XML構成ファイルでfs.s3n.awsAccessKeyId
プロパティとfs.s3n.awsSecretAccessKey
プロパティを設定するか、sc.hadoopConfiguration.set()
を呼び出してSparkのグローバルHadoop構成を設定します。sc.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "$AccessKey") sc.hadoopConfiguration.set("fs.s3n.awsSecretAccessKey", "$SecretKey")
sc._jsc.hadoopConfiguration().set("fs.s3n.awsAccessKeyId", ACCESS_KEY) sc._jsc.hadoopConfiguration().set("fs.s3n.awsSecretAccessKey", SECRET_KEY)
URI のキーのエンコード: たとえば、URI
s3a://$AccessKey:$SecretKey@bucket/path/to/dir
はキーペア(AccessKey
、SecretKey
)をエンコードします。