用DataFrameReader从S3读取文件

问题描述:

嗨,我有一个问题,从S3读取文件与DataFrameReader 我能够读取完全相同的文件,当它在本地 ,但是当它存储在s3我无法读取它,这里是我的代码用DataFrameReader从S3读取文件

private SparkSession getSparkSession() { 
    return sparkSessionService.getTransformedCsvSparkSession(); 
} 

public void processFile(StructType structType, String srcFile, String targetFile) { 
    //"s3n://yourAccessKey:[email protected]/path/ 
    String spark = new String("s3n://TTTTTTTT:[email protected]/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读取?

+1

上斜线有没有在您的AWS“/”访问密钥或秘密密钥?这会混淆火花。您可以从spark上下文获取hadoop配置并在那里设置键。确切的选项名称取决于您使用的火花版本。 –

+0

不,没有,我如何“拆分”桶/路径/实际文件名? –

+0

正在正确分割存储桶,路径和文件名。 –

不应该有水桶名前斜线,它的确定,使文件路径