【发布时间】:2017-05-26 01:40:56
【问题描述】:
我是 Scala 新手。如何使用 Scala(不使用 Spark)从 HDFS 读取文件? 当我用谷歌搜索时,我只发现了 HDFS 的写入选项。
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.PrintWriter;
/**
* @author ${user.name}
*/
object App {
//def foo(x : Array[String]) = x.foldLeft("")((a,b) => a + b)
def main(args : Array[String]) {
println( "Trying to write to HDFS..." )
val conf = new Configuration()
//conf.set("fs.defaultFS", "hdfs://quickstart.cloudera:8020")
conf.set("fs.defaultFS", "hdfs://192.168.30.147:8020")
val fs= FileSystem.get(conf)
val output = fs.create(new Path("/tmp/mySample.txt"))
val writer = new PrintWriter(output)
try {
writer.write("this is a test")
writer.write("\n")
}
finally {
writer.close()
println("Closed!")
}
println("Done!")
}
}
请帮助我。如何使用 scala 从 HDFS 读取文件或加载文件。
【问题讨论】:
-
到目前为止您尝试了什么,例如hadoop.apache.org/docs/current/api/org/apache/hadoop/fs/… ?
-
这里的文档很难理解,恕我直言
-
我们选择了将小文件从 HDFS 复制到本地文件系统并在那里按顺序处理。