如何使用Scala在边缘节点中读取.text文件。
def main(args: Array[String]) {
val srcFile=sc.textFile("file://home//viji.palanisamy//dev//kpi_library//EDI//Prof_test1").toString()
readFile(srcFile)
}
def readFile(filename: String) = {
val bufferedSource = Source.fromFile(filename)
println("bufferedSource"+bufferedSource)
}
收到错误的文件,例如找不到文件。有没有解决方案使用Scala从节点读取文本。
答案 0 :(得分:0)
是否有任何解决方案可以使用Scala从节点读取文本。
除非你想在本地阅读文件,否则使用标准IO工具(Read entire file in Scala?)和parallelize
就没有了。
您必须将文件分发到每个执行程序节点或将其放在分布式存储中。
此处显示的技巧https://stackoverflow.com/a/47845360/9658417 user8371915:
import org.apache.spark.SparkFiles
val filename: String = ???
sc.addFile(filename)
val srcFile=sc.textFile(SparkFiles.get(filename))
但是,如果你想要的只是读取驱动程序上的本地文件,请跳过textFile
部分并且仅:
Source.fromFile(filename)