2016-09-16 6 views
1

私がモデルを作成しました:はIllegalArgumentException、間違ったFSスパークからS3にMLモデルを書き込み(スカラ)

val model = pipeline.fit(commentLower) 

と私はS3にそれを書き込もうとしています:

sc.hadoopConfiguration.set("fs.s3.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem") 
sc.hadoopConfiguration.set("fs.s3.awsAccessKeyId", "MYACCESSKEY") 
sc.hadoopConfiguration.set("fs.s3.awsSecretAccessKey", "MYSECRETKEY") 
model.write.overwrite().save("s3n://sparkstore/model") 

をしかし、私はこのエラーを取得しています:

Name: java.lang.IllegalArgumentException 
Message: Wrong FS: s3n://sparkstore/model, expected: file:/// 
StackTrace: org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:645) 
org.apache.hadoop.fs.RawLocalFileSystem.pathToFile(RawLocalFileSystem.java:80) 
org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus(RawLocalFileSystem.java:529) 
org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal(RawLocalFileSystem.java:747) 
org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:524) 
org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:409) 
org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1400) 
org.apache.spark.ml.util.MLWriter.save(ReadWrite.scala:80) 

私はまた私のアクセスキーをインラインで試してみました:

model.write.overwrite().save("s3n://MYACCESSKEY:[email protected]/sparkstore/model") 

どのようにモデル(またはそれに関するファイル)をSparkからs3に書き込むことができますか?

答えて

0

これは私がやってみたかった、まさにではありませんが、私は同様の問題と同様のスレッドが見つかりました:

How to save models from ML Pipeline to S3 or HDFS?

この私がやってしまったものです:

sc.parallelize(Seq(model), 1).saveAsObjectFile("swift://RossL.keystone/model") 
val modelx = sc.objectFile[PipelineModel]("swift://RossL.keystone/model").first() 
2

私はテストするためのS3接続を持っていません。 しかし、ここでは、私が何を考えている、あなたが使用する必要があります: -

val hconf=sc.hadoopConfiguration 
hconf.set("fs.s3.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem") 
hconf.set("fs.s3.awsAccessKeyId", "MYACCESSKEY") 
hconf.set("fs.s3.awsSecretAccessKey", "MYSECRETKEY") 

私はdf.write.save("s3://sparkstore/model") を行うと、私は私はそれがS3 FSためrecongnize S3 protocalをしたと信じていますName: org.apache.hadoop.fs.s3.S3Exception Message: org.jets3t.service.S3ServiceException: S3 HEAD request failed for '/model' - ResponseCode=403, ResponseMessage=Forbidden StackTrace: org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.handleServiceException(Jets3tNativeFileSystemStore.java:229) org.apache.hadoop.fs.s3native.Jets3tNativeFileSystemStore.retrieveMetadata(Jets3tNativeFileSystemStore.java:111) s

を取得します。 しかし、それは明白な認証に失敗しました。

うまくいけば、あなたの問題を解決します。

ありがとう、 チャールズ。

+0

感謝入力のために!私はデータフレームを保存するのに問題はありません。この問題は、PipelineModelsに固有です。私は他の場所で見つけた答えを加えています。 –

関連する問題