Amazon S3選擇
Amazon S3選擇允許隻從對象中檢索所需的數據。Databricks S3 Select連接器提供了一個利用S3 Select的Apache Spark數據源。當使用S3 Select數據源時,DataFrame上的過濾器和列選擇被下推,從而節省S3數據帶寬。
限製
Amazon S3 Select支持以下文件格式:
CSV和JSON文件
utf - 8編碼
GZIP或不壓縮
Databricks S3 Select連接器有以下限製:
複雜類型(數組和對象)不能在JSON中使用
不支持模式推斷
不支持文件分割,但支持多行記錄
不支持DBFS掛載點
重要的
Databricks Runtime 7.0不支持,它包括AWS SDK升級到1.11.655org.apache.hadoop.fs.s3native.NativeS3FileSystem
而且org.apache.hadoop.fs.s3.S3FileSystem
訪問S3。
數據庫強烈建議您使用S3AFileSystem
由Databricks提供,這是的默認值s3a: / /
,s3: / /
,s3n: / /
在Databricks運行時中的文件係統方案。如果您需要協助遷移到S3AFileSystem
,請聯係Databricks支持人員或您的Databricks代表。
使用
sc.讀.格式(“s3select”).模式(…)。選項(…)。負載(“s3: / /桶/文件名”)
創建表格的名字(…)使用S3SELECT位置“s3: / /桶/文件名”[選項(…)]
如果文件名擴展名是. csv
或. json
,格式自動檢測;否則,您必須提供FileFormat
選擇。
選項
本節描述了所有文件類型的選項以及特定於CSV和JSON的選項。
通用選項
選項名稱 |
默認值 |
描述 |
---|---|---|
FileFormat |
“汽車” |
輸入文件類型(' auto ', ' csv ',或' json ') |
CompressionType |
“沒有” |
輸入文件使用的壓縮編解碼器(' none '或' gzip ') |
S3身份驗證
您可以使用Databricks中提供的S3身份驗證方法(密鑰和實例配置文件);我們建議您使用實例配置文件.提供憑證有三種方式:
默認憑據提供程序鏈(推薦選項):方法自動檢索AWS憑據DefaultAWSCredentialsProviderChain.如果您使用實例概要文件對S3進行身份驗證,那麼您應該使用此方法。提供憑據的其他方法(方法2和方法3)優先於此默認值。
在Hadoop conf中設置鍵:指定AWS密鑰Hadoop配置屬性.
重要的
當使用AWS密鑰訪問S3時,始終設置配置屬性
fs.s3n.awsAccessKeyId
而且fs.s3n.awsSecretAccessKey
如下例所示;的屬性fs.s3a.access.key
而且fs.s3a.secret.key
是不支持.引用
s3a: / /
文件係統,設置fs.s3n.awsAccessKeyId
而且fs.s3n.awsSecretAccessKey
屬性在Hadoop XML配置文件或調用sc.hadoopConfiguration.set ()
設置Spark的全局Hadoop配置。sc.hadoopConfiguration.集(“fs.s3n.awsAccessKeyId”,“AccessKey美元”)sc.hadoopConfiguration.集(“fs.s3n.awsSecretAccessKey”,“SecretKey美元”)
sc._jsc.hadoopConfiguration().集(“fs.s3n.awsAccessKeyId”,ACCESS_KEY)sc._jsc.hadoopConfiguration().集(“fs.s3n.awsSecretAccessKey”,SECRET_KEY)
在URI中編碼鍵:例如,URI
AccessKey:美元s3a: / / SecretKey@bucket /路徑/ / dir
編碼密鑰對(AccessKey
,SecretKey
).