【发布时间】:2016-06-02 13:17:42
【问题描述】:
我需要使用 HDFS 中目录的内容更新一个可变列表,我在 spark-shell 中有以下代码,但在脚本中却没有:
import org.apache.hadoop.fs._
import org.apache.spark.deploy.SparkHadoopUtil
var listOfFiles= scala.collection.mutable.ListBuffer[String]()
val hdfs_conf = SparkHadoopUtil.get.newConfiguration(sc.getConf)
val hdfs = FileSystem.get(hdfs_conf)
val sourcePath = new Path(filePath)
hdfs.globStatus( sourcePath ).foreach{ fileStatus =>
val filePathName = fileStatus.getPath().toString();
val fileName = fileStatus.getPath().getName();
listOfFiles.append(fileName)
}
listOfFiles.tail
任何帮助,当它运行时会启动一个异常,告知 listOfFiles 为空。
【问题讨论】:
-
将其写入 scala 文件时会出现什么异常?
-
例外是listOfiles为空
-
我猜在 scala 方面没有错,也许再次检查 hdfs.globStatus ( ... ) 部分
-
很可能你的 hdfc.globalStatus(sourcePath) 没有返回任何东西
-
为什么在 spark-shell 中有效,而在脚本中无效?
标签: scala apache-spark