2016-09-06 19 views
6

Tôi đang cố gắng để tải một số dữ liệu từ một xô Amazon S3 bởi:Spark - Không FileSystem cho chương trình: https, không thể tải tập tin từ 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"); 

dòng cuối cùng này tuy nhiên ném một lỗi:

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

Cùng một dòng đã hoạt động trong một dự án khác, tôi đang thiếu gì? Tôi đang chạy Spark trên máy ảo CentOS Hortonworks.

Trả lời

1

Theo mặc định, Spark hỗ trợ HDFS, S3 và cục bộ. S3 có thể được truy cập bởi s3a: // hoặc s3n: // giao thức (difference between s3a, s3n and s3 protocols)

Vì vậy, để truy cập vào một tập tin tốt nhất là sử dụng như sau:

s3a://bucket-name/key 

Tùy thuộc vào phiên bản spark của bạn và bao gồm thư viện bạn có thể cần thêm lọ bên ngoài:

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

(bạn có chắc chắn rằng bạn đang sử dụng s3 với giao thức https trong các dự án trước có lẽ bạn đã mã tùy chỉnh hoặc lọ bao gồm để hỗ trợ giao thức https?)

Các vấn đề liên quan