databricks spark 集群连接AWS s3 数据

dbutils.fs.unmount("/mnt/s3data")

access_key = "***********"
secret_key = "*****************"
encoded_secret_key = secret_key.replace("/", "%2F")
aws_bucket_name = "feia**est"
mount_name = "s3data"
dbutils.fs.mount("s3a://%s:%s@%s" % (access_key, encoded_secret_key, aws_bucket_name), "/mnt/%s" % mount_name)
display(dbutils.fs.ls("/mnt/%s" % mount_name))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要配置 AWS 凭证信息,可以按照以下步骤进行操作: 1. 登录到 AWS 控制台,转到 IAM(身份和访问管理)服务。 2. 在 IAM 服务页面上,选择“用户”选项卡,然后单击“添加用户”。 3. 在“添加用户”页面上,输入用户的名称,并选中“编程访问”复选框。 4. 在“设置权限”页面上,选择“现有策略直接附加”,并选择“AmazonS3FullAccess”权限策略。 5. 在“添加标签”页面上,可以为用户添加标签,然后单击“下一步:审核”。 6. 在“审核”页面上,确认用户的信息和权限,然后单击“创建用户”。 7. 在“创建用户”页面上,将访问密钥 ID 和密钥访问密钥下载到本地计算机。 8. 在 Spark 集群中,可以通过设置环境变量或在代码中使用 AWS SDK 来配置访问密钥信息。例如: ``` import org.apache.spark.sql.SparkSession import com.amazonaws.auth.{AWSStaticCredentialsProvider, BasicAWSCredentials} val accessKeyId = "your_access_key_id" val secretAccessKey = "your_secret_access_key" val credentials = new BasicAWSCredentials(accessKeyId, secretAccessKey) val credentialsProvider = new AWSStaticCredentialsProvider(credentials) val spark = SparkSession.builder.appName("MyApp") .config("spark.hadoop.fs.s3a.access.key", accessKeyId) .config("spark.hadoop.fs.s3a.secret.key", secretAccessKey) .config("spark.hadoop.fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem") .config("spark.hadoop.fs.s3a.endpoint", "s3.amazonaws.com") .config("spark.hadoop.fs.s3a.connection.maximum", "1000") .config("spark.hadoop.fs.s3a.connection.ssl.enabled", "true") .config("spark.hadoop.fs.s3a.path.style.access", "true") .config("spark.hadoop.fs.s3a.buffer.dir", "/mnt/tmp/spark/s3") .config("spark.hadoop.fs.s3a.connection.timeout", "100000") .config("spark.hadoop.fs.s3a.readahead.range", "64k") .config("spark.hadoop.fs.s3a.multipart.size", "104857600") .config("spark.hadoop.fs.s3a.fast.upload", "true") .config("spark.hadoop.fs.s3a.fast.upload.buffer", "disk") .config("spark.hadoop.fs.s3a.fast.upload.active.blocks", "4") .config("spark.hadoop.fs.s3a.retry.maximum", "10") .config("spark.hadoop.fs.s3a.retry.interval", "500") .config("spark.hadoop.fs.s3a.requester.pays.enabled", "false") .config("spark.hadoop.fs.s3a.threads.max", "100") .config("spark.hadoop.fs.s3a.experimental.input.fadvise", "sequential") .config("spark.hadoop.fs.s3a.experimental.input.fadvise.pagecache", "true") .config("spark.hadoop.fs.s3a.experimental.output.fadvise", "random") .config("spark.hadoop.fs.s3a.experimental.s3guard.ddb.table", "table-name") .config("spark.hadoop.fs.s3a.experimental.s3guard.ddb.region", "us-west-2") .config("spark.hadoop.fs.s3a.experimental.s3guard.ddb.maxRetries", "10") .config("spark.hadoop.fs.s3a.experimental.s3guard.ddb.consistentRead", "false") .config("spark.hadoop.fs.s3a.experimental.s3guard.ddb.endpoint", "dynamodb.us-west-2.amazonaws.com") .config("spark.hadoop.fs.s3a.experimental.s3guard.ddb.profile", "default") .config("spark.hadoop.fs.s3a.experimental.s3guard.ddb.credentials.provider", "com.amazonaws.auth.DefaultAWSCredentialsProviderChain") .config("spark.hadoop.fs.s3a.experimental.s3guard.ddb.throughput.read", "1") .config("spark.hadoop.fs.s3a.experimental.s3guard.ddb.throughput.write", "1") .config("spark.hadoop.fs.s3a.experimental.s3guard.ddb.throughput.global", "1") .config("spark.hadoop.fs.s3a.experimental.s3guard.ddb.batch.write.retry.count", "3") .config("spark.hadoop.fs.s3a.experimental.s3guard.ddb.batch.write.retry.interval", "2000") .config("spark.hadoop.fs.s3a.experimental.s3guard.ddb.batch.write.retry.backoff", "2.0") .config("spark.hadoop.fs.s3a.experimental.s3guard.ddb.batch.write.size", "25") .config("spark.hadoop.fs.s3a.experimental.s3guard.ddb.batch.write.capacity", "25") .config("spark.hadoop.fs.s3a.experimental.s3guard.ddb.batch.write.max.requests", "100") .config("spark.hadoop.fs.s3a.experimental.s3guard.ddb.batch.write.max.size", "1048576") .config("spark.hadoop.fs.s3a.experimental.s3guard.ddb.batch.write.timeout", "60000") .config("spark.sql.parquet.filterPushdown", "true") .config("spark.sql.parquet.mergeSchema", "false") .config("spark.sql.hive.metastorePartitionPruning", "true") .config("spark.sql.hive.convertMetastoreParquet", "false") .config("spark.sql.hive.caseSensitiveInferenceMode", "NEVER_INFER") .config("spark.sql.hive.verifyPartitionPath", "true") .config("spark.sql.hive.metastoreJars", "") .config("spark.sql.hive.metastoreVersion", "2.3.7") .config("spark.sql.hive.metastoreSharedPrefixes", "com.amazonaws.services.dynamodbv2") .getOrCreate() ``` 其中,accessKeyId 和 secretAccessKey 是在步骤 7 中下载的访问密钥信息。其他配置参数可以根据需要进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值