当前位置: 首页 > 知识库问答 >
问题:

AWS Sagemaker Spark S3访问问题

公孙宏畅
2023-03-14

我是新来的。我在一个VPC中创建了一个笔记本,它有私有子网,kms默认加密密钥,根访问,没有直接的internet访问。我已附上政策,根据文件,该政策可完全访问IAM中的Sagemaker和S3。现在,当一位数据科学家试图在jupyter中运行他的代码时,出现了以下错误。我可以看到jar文件(/home/ec2 user/anaconda3/envs/python3/lib/python3.6/site packages/sagemaker_pyspark/jars/),我甚至在代码中提供了访问密钥和密钥,我们在这里做了什么错误吗

import os
import boto3

from pyspark import SparkContext, SparkConf
from pyspark.sql import SparkSession

import sagemaker
from sagemaker import get_execution_role
import sagemaker_pyspark
import pyspark

role = get_execution_role()
spark = SparkSession.builder \
            .appName("app_name2") \
            .getOrCreate()

sc=pyspark.SparkContext.getOrCreate()
sc.setSystemProperty("com.amazonaws.services.s3.enableV4", "true")

hadoop_conf = spark.sparkContext._jsc.hadoopConfiguration()
spark._jsc.hadoopConfiguration().set("fs.s3a.access.key", 'access_key')
spark._jsc.hadoopConfiguration().set("fs.s3a.secret.key", 'secret_key')
spark._jsc.hadoopConfiguration().set("fs.s3a.endpoint", "s3.us-east-2.amazonaws.com")
spark._jsc.hadoopConfiguration().set("com.amazonaws.services.s3a.enableV4", "true")
spark._jsc.hadoopConfiguration().set("fs.s3a.connection.ssl.enabled", "false");
spark._jsc.hadoopConfiguration().set("fs.s3a.impl", "org.apache.hadoop.fs.s3a.S3AFileSystem")
df= spark.read.csv("s3a://mybucket/ConsolidatedData/my.csv",header="true")


Py4JJavaError: An error occurred while calling o579.csv.
: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class org.apache.hadoop.fs.s3a.S3AFileSystem not found
    at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:2195)
    at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2654)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2667)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:94)
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2703)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2685)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:373)
    at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295)
    at org.apache.spark.sql.execution.datasources.DataSource$.org$apache$spark$sql$execution$datasources$DataSource$$checkAndGlobPathIfNecessary(DataSource.scala:709)

共有1个答案

蔚琦
2023-03-14

/home/ec2 user/anaconda3/envs/python3/lib/python3中缺少Jar文件。6/site packages/pyspark/jars,我正在查看(/home/ec2 user/anaconda3/envs/python3/lib/python3.6/site packages/sagemaker_pyspark/jars/),在第一个位置复制文件解决了问题。

 类似资料:
  • 我以前曾尝试向LineItem类添加访问器,如 并将FTL从更改为,但这不起作用。解决方案是添加访问器,但不更改FTL(保持为。 我正在用Freemarker格式化一些电子邮件。在这封电子邮件中,我被要求列出一系列产品信息,如发票上的信息。我的目标是传递一个对象列表(在一个映射中),以便在FTL中迭代它们。目前我遇到一个问题,无法从模板中访问对象属性。我可能只是错过了一些小东西,但现在我很难堪。

  • 我在CentOS虚拟机中安装了RabbitMQ,该虚拟机的网络适配器被定义为Bridge。我正在尝试配置RabbitMQ管理,以便通过机器的IP地址访问WebApp。配置如下:

  • wordpress搭建的博客从宝塔上换到centos7系统中,nginx配置https,访问域名在开启clash网络代理情况下可以正常访问,但是关闭clash就访问失败。使用PHP8.2、MySql5.7、Nginx1.25 nginx配置 开启防火墙放开80、22、443端口,后关闭防火墙还是不行,然后查看nginx和PHP-fpm的端口,还更换PHP—fpm版本,更该wordpress权限,更

  • 我正试图从vue.js端访问laravel服务器。但它表明 CORS策略阻止从来源“http://localhost:8000/api/registerdoctor”访问位于“http://localhost:8080”的XMLHttpRequest:请求的资源上没有“Access-Control-Allow-Origin”标头。 怎么办?

  • URL格式 ThinkCMF5采用的是混合模式路由,也就是说同时支持路由和PATH_INFO方式; 如果没有设置路由规则,默认就采用PATH_INFO方式,URL 格式如下: http://yourServerName/index.php/应用/控制器/操作/[参数名/参数值...] URL大小写 ThinkCMF5的 URL 是不区分大小写的,如: http://localhost/index

  • URL格式 ThinkCMF6.0采用的是混合模式路由,也就是说同时支持路由和PATH_INFO方式; 如果没有设置路由规则,默认就采用PATH_INFO方式,URL 格式如下: http://yourServerName/index.php(或其它入口文件)/应用/控制器/操作/[参数名/参数值...] URL大小写 ThinkCMF的 URL 是不区分大小写的,如: http://local