【发布时间】:2017-06-27 15:31:35
【问题描述】:
您好,我在使用 DataFrameReader 从 S3 读取文件时遇到问题 我可以在本地读取完全相同的文件 但是当它存储在 s3 上时,我无法读取它,这是我的代码的 sn-p
private SparkSession getSparkSession() {
return sparkSessionService.getTransformedCsvSparkSession();
}
public void processFile(StructType structType, String srcFile, String targetFile) {
//"s3n://yourAccessKey:yourSecretKey@/path/
String spark = new String("s3n://TTTTTTTT:YYYYYYY@/bucket-qa1/test/123456785_Ads_mockup_.csv");
Dataset<Row> dfSpark = getSparkSession().read().format("csv").schema(structType).option("header", srcIncludeHeader).load(spark);
dfSpark.show();
但我得到了这个错误:
java.lang.IllegalArgumentException: Invalid hostname in URI s3n://.....
我正在使用DataBrics:
我如何“告诉” DataFrameReader 从 AWS S3 读取数据?
【问题讨论】:
-
您的 aws 访问密钥或密钥中是否有“/”?那会混淆火花。您可以从 spark 上下文中获取 hadoop 配置并在那里设置密钥。确切的选项名称取决于您使用的 spark 版本。
-
不,没有,我如何在 Bucket / path / 实际文件名之间“拆分”?
-
您正确地拆分了存储桶、路径和文件名。
标签: java amazon-web-services apache-spark amazon-s3 databricks