0
私はs3バケットに存在する数値ファイルを取得しようとしています。私はチェックしようとしているSeqとしてパスのリストを持っています。私は、パスをフィルタリングしようとしていますが、エラーが続いています。ScalaのSeq [Array [String]]でフィルターをかけるには?
import java.net.URI
import org.apache.hadoop.fs.FileSystem
import org.apache.hadoop.fs.Path
files: Seq[String] = Vector(s3://dv-service-prod-na/output/sample/test/data/2016/12/01/*/*, s3://dv-service-prod-na/output/sample/test/data/2016/12/02/*/*, s3://dv-service-prod-na/output/sample/test/data/2016/12/03/*/*, s3://dv-service-prod-na/output/sample/test/data/2016/12/04/*/*, s3://dv-service-prod-na/output/sample/test/data/2016/12/05/*/*)
val filePath = files.map(x=> x.split("/\\*/\\*"))
val input = "s3n://dv-service-prod-na"
val missingPath = filePath.filter(x => (FileSystem.get(new URI(input), sc.hadoopConfiguration).exists(new Path(x))).equals(false)).count
エラー:
console>:92: error: overloaded method constructor Path with alternatives: (x$1: java.net.URI)org.apache.hadoop.fs.Path <and> (x$1: String)org.apache.hadoop.fs.Path cannot be applied to (Array[String])
予想される出力とは何ですか? – Brian
@Brian期待される出力は、存在しないパスの数であると考えられます。 – user3407267
@nmatありがとう!それは動作します:) – user3407267