gpt4 book ai didi

java - 使用 Java.IO 准备文件路径

转载 作者:行者123 更新时间:2023-11-30 05:31:55 26 4
gpt4 key购买 nike

我对 scala 非常陌生,准备了下面的函数。在下面的函数中,我需要检查特定路径是否存在:

def insertData(df: DataFrame, path: String): Unit = {
import sc.sqlContext.implicits._

// get output path to export the parquet files
val MPath = path+"/output"
var getDates = df.select("dates").distinct().collect().map(_(0)).toList
var invalidDates = new ListBuffer[String]()

// check if output path is present or not

if (new JFile(MPath ).exists) {

for (dates <- getDates) {
if (new JFile(MPath +"/Date=" + dates).exists) {


invalidDates += "Date=" + dates.toString

FileUtils.deleteDirectory(new JFile(MPath+ "/Date=" + dates))
}

else
{
log.info(s"No parquet associated with Date")
}

}
}

else
{

new JFile(MPath).mkdirs()
}

}

在这里,我使用 new JFile(MPath ) ,然后在 for 循环中使用 new JFile(MPath +"/Date="+ days).exists) 进行串联.我只需要避免重写new JFile。有没有什么方法可以避免这种情况

最佳答案

使用 Hadoop 的文件系统:

def doesPathExist(pathStr: String):Boolean = {
import org.apache.hadoop.conf.Configuration
import org.apache.hadoop.fs.{FileSystem, Path}

val path = new Path(pathStr)
val fileSystem = path.getFileSystem(new Configuration)

fileSystem.exists(path)
}

关于java - 使用 Java.IO 准备文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57347007/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com