用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读取?
答
不应该有水桶名前斜线,它的确定,使文件路径
上斜线有没有在您的AWS“/”访问密钥或秘密密钥?这会混淆火花。您可以从spark上下文获取hadoop配置并在那里设置键。确切的选项名称取决于您使用的火花版本。 –
不,没有,我如何“拆分”桶/路径/实际文件名? –
正在正确分割存储桶,路径和文件名。 –