在Spark中通过SFTP读取文件

时间:2016-01-08 11:46:17

标签: apache-spark apache-spark-sql

是否可以在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.access$200(FileSystem.java:91)
    at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2630)

有没有办法在spark中使用sftp读取文件?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

我们已经创建了一个非常简单的火花SFTP连接器来实​​现这一目标。

这是github链接https://github.com/springml/spark-sftp

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