从hdfs、scala spark读取文件

muk1a3rh  于 2021-07-09  发布在  Spark
关注(0)|答案(1)|浏览(486)

我试图从hdfs读取一个文件,但是我在这里遇到了一个问题。文件无法存在,因此我必须检查是否存在。如果文件存在,我读取该文件,否则我读取一个空的df。
所以我要尝试的是:

  1. val fs: FilySystem = FileSystem.get(new URI(path), new Configuration())
  2. if (fs.exists(new org.apache.hadoop.fs.Path(s"$Path"))) {
  3. val df6 = spark.read.parquet(path)
  4. } else {
  5. val df6 = df1.limit(0)
  6. }
  7. val df6.show()

但是我在jupyter上发现了以下错误:

  1. Message: <console>:28: error: not found: type FileSystem

我做错了什么?

roejwanj

roejwanj1#

试试这样的方法(调整一下)-

  1. import org.apache.hadoop.conf.Configuration
  2. import org.apache.hadoop.fs.FileSystem
  3. import org.apache.hadoop.fs.Path
  4. import java.net.URI
  5. import scala.io.Source
  6. val hdfs = FileSystem.get(new URI("hdfs://cluster:8020/"), new Configuration())
  7. val path = new Path("/HDFS/FILE/LOCATION")
  8. val stream = hdfs.open(path)
  9. val temp = Source.fromInputStream(stream).getLines()

相关问题