【问题标题】:Read files from S3 with DataFrameReader使用 DataFrameReader 从 S3 读取文件
【发布时间】: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


【解决方案1】:

bucket名称前不应该有斜线,文件路径上有斜线是可以的

【讨论】:

    猜你喜欢
    • 2018-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-21
    • 2020-08-11
    • 2015-08-31
    • 2017-04-21
    • 2019-09-14
    相关资源
    最近更新 更多