我对 Scala 还很陌生,有谁能帮我解决一个需要获取最新修改日期的文件的情况。有两种情况。考虑 2 个目录,dir1(有...
还很陌生, Scala 有谁能帮我解决我需要获取最新修改日期的文件的情况吗?
有两种情况。考虑两个目录,
对于场景 1 - 我需要获取最新修改日期目录中具有最新修改日期的文件
对于场景 2 - 我只需要最新修改的最新文件。
请尽可能地帮助我,我尝试使用 java.io 文件处理进行实验,但没有取得任何进展。
这个问题太笼统了,无法在这里回答;你能给出一个更具体的例子来说明你发现的问题吗?是 Scala 编码、算法还是 Java 库本身?
我正在尝试从 org.apache.spark.sql.Column 类型变量中获取键并将其放入列表中,以便我可以进行一些模式比较。inputFieldMap:org.apache.spark.sql.Column = keys:[custome...
我正在尝试从 org.apache.spark.sql.Column 类型变量中获取键并将其放入列表中,以便我可以进行一些模式比较。
inputFieldMap: org.apache.spark.sql.Column = keys:[customerID,country],values[customerID,country] expected output newvariable: list[string]=[customerID,country];
使用 map_keys 函数从数据类型的列中获取列表键 map 。
map_keys
map
df.selectExpr("map_keys(inputFieldMap) as newvariable")
这不是一个编写代码的网站。如果你尝试过并发现了一个具体的问题,那么可以在这里发布,但如果你还没有尝试过,那么请查看文档
添加了上面问题中的代码图像,我试图获取最大时间,但如何获取具有该修改时间的文件?我应该再次迭代检查每个文件的修改时间还是有更好的方法?
此外,您应该将代码作为文本而不是图像包含。如果您在每行开头添加四个空格,它将自动将其格式化为代码(例如,请参阅我的答案)
这是我对嵌套目录执行此操作的(未经测试的)代码:
def latest(file: File): File = file.listFiles.maxByOption(_.lastModified) match { case Some(f) => latest(f) case None => file }
这是尾递归并且将编译为一个简单的循环。
如何访问 scala 匹配表达式之外的变量?即使我将其声明为 var,它也不会返回测试变量的更新值。--更新了问题 val x: Int = 2var v1: St...
如何访问 scala 匹配表达式之外的变量?即使我将其声明为 var,它也不会返回测试变量的更新值。
--更新了问题
val x: Int = 2 var v1: String = "" var v2: String = "" x match { case 1 => {var v1="testObj1" var v2="testobj2" } } println(v1,v2) -- should return testObj1 and testObj2
原始方法在空目录上会失败(无限递归),因此我用更好的方法替换了它。这假设 listFiles 在非目录上返回空列表而不是抛出错误。文档对此不清楚。
检查下面的代码。返回值并分配给测试变量。
val x: Int = 2 var test: Int = _
test = x match { case 1 => 10 case 2 => 11 }
println(test) test: Int = 11
var (v1, v2) = x match { case 1 => ("A", "B") case 2 => ("B", "C") } // Exiting paste mode, now interpreting. v1: String = B v2: String = C
或者
var v1: String = "" var v2: String = "" x match { case 1 => { v1="testObj1" v2="testobj2" } case 2 => { v1="testObj3" v2="testobj4" } } scala> v1 res3: String = testObj3 scala> v2 res4: String = testobj4
问题在于您正在 v1 内部 v2 and case ,因此旧变量不会被更新。
v1
v2
case
使用赋值比 var 声明更好(更具功能性):
var
val (v1, v2) = x match { case 1 => ("testObj1", "testobj2") case _ => ("default1", "default2") }