在 Spark 中通过 SFTP 读取文件

Reading files via SFTP in Spark

是否可以在 spark 中使用 SFTP 读取文件?

我尝试使用 val df = sc.textFile("sftp://user:password@host/home/user/sample.csv")

但出现以下错误

scala> df.count
java.io.IOException: No FileSystem for scheme: sftp
    at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2584)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2591)
    at org.apache.hadoop.fs.FileSystem.access0(FileSystem.java:91)
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2630)

有什么方法可以在 spark 中使用 sftp 读取文件吗?

目前看来是不可能的(Spark 1.6,最大配置文件hadoop-2.6)。 SFTP 支持将在 Hadoop 2.8 中引入(参见 HADOOP-5732)。

我们创建了一个非常简单的 spark SFTP 连接器来执行此操作。

这里是githublinkhttps://github.com/springml/spark-sftp

它也已发布到 spark-packages。 http://spark-packages.org/package/springml/spark-sftp