【问题标题】:Spark - No FileSystem for scheme: https, cannot load files from Amazon S3Spark - 方案没有文件系统:https,无法从 Amazon S3 加载文件
【发布时间】:2016-09-08 15:03:10
【问题描述】:

我正在尝试通过以下方式从 Amazon S3 存储桶加载一些数据:

SparkConf sparkConf = new SparkConf().setAppName("Importer");
JavaSparkContext ctx = new JavaSparkContext(sparkConf);
HiveContext sqlContext = new HiveContext(ctx.sc());

DataFrame magento = sqlContext.read().json("https://s3.eu-central-1.amazonaws.com/*/*.json");

然而,最后一行会引发错误:

Exception in thread "main" java.io.IOException: No FileSystem for scheme: https

同一行一直在另一个项目中工作,我错过了什么?我在 Hortonworks CentOS VM 上运行 Spark。

【问题讨论】:

    标签: java apache-spark amazon-s3


    【解决方案1】:

    默认情况下,Spark 支持 HDFS、S3 和本地。 S3 可以通过 s3a:// 或 s3n:// 协议访问(difference between s3a, s3n and s3 protocols)

    所以要访问一个文件,最好使用以下方法:

    s3a://bucket-name/key
    

    根据您的 spark 版本和包含的库,您可能需要添加外部 jar:

    Spark read file from S3 using sc.textFile ("s3n://...)

    (你确定你在以前的项目中使用的是带有 https 协议的 s3 吗?也许你已经包含了自定义代码或 jar 来支持 https 协议?)

    【讨论】:

      猜你喜欢
      • 2021-12-12
      • 2021-11-15
      • 1970-01-01
      • 2018-08-20
      • 1970-01-01
      • 2018-03-26
      • 1970-01-01
      • 1970-01-01
      • 2020-05-13
      相关资源
      最近更新 更多