我想把一个特定的文件列表加载到Spark中。我创建了一个UDF来过滤文件列表,因此我获得了一个seq
和我要加载的文件。我试图使用public dataset
指向API的链接,但由于某些原因,它告诉我“重载方法值csv具有替代选项:(paths:String*)org.apache.spark.sql.dataframe(csvdataset:org.apache.spark.sql.dataframe[String])org.apache.spark.sql.dataframe(path:String)org.apache.spark.sql.dataframe(path:String)org.apache.spark.sql.dataframe不能应用于(seq[String])”
我在这里漏掉了什么?
package main.scala.task
import org.apache.spark.sql.SparkSession
object Test {
def date_filter: (java.io.File, Int) => Boolean = (file: java.io.File, threshold: Int) => {
val pat1 = "(\\d+)".r // Pattern to capture timestamp
val matcher1 = pat1.findFirstMatchIn(file.getName) // Capture timestamp
matcher1 match {
case Some(matched1) => {if (matched1.group(1).toInt > threshold) {true} else {false}}
case None => false
}
}
def main(args: Array[String]) {
val spark = SparkSession.builder().getOrCreate()
import spark.implicits._
val path = "/my_folder/Test"
val now: Int = 1486022490
var files = new java.io.File(path).listFiles.filter(p => date_filter(p,now)).map(_.getName).toSeq
val df = spark.read.csv(files)
}
}
错误是告诉您需要使用varargs而不是传递字符串序列。
val files: Seq[String] = Seq("/path/to/file1.txt", "/path/to/file2.txt")
val df = spark.read.csv(files:_*)
此外,您链接到Java文档而不是Scala文档,这可能会解释您的困惑。
我试图在laravel中热切地加载一个模型,但只返回某些列。我不希望整个热切加载表被提出。
我正在一个spring启动的应用程序,我需要你的协助在下面的场景。 我有每个环境的属性文件,比如application-dev.properties,application-prod.properties等。我的应用程序可以通过使用spring@profile注释来加载特定于环境的属性文件。 请帮帮忙。
我试图将大量平面文件加载到一个sql表中,并向表中添加一个filename列。 在控制流中,我有两个foreech循环,抓取文件名并将它们传递给两个变量。
问题内容: 出于调试原因和好奇心,我希望列出所有加载到特定类加载器的类。 鉴于类加载器的大多数方法都受到保护,实现我想要的最佳方法是什么? 谢谢! 问题答案: 可以做你想要的。 根据文档: 返回所有类的数组,这些类的加载程序是初始加载程序。 我不确定“启动加载程序”是什么意思。如果这样不能给出正确的结果,请尝试使用该方法并通过ClassLoader手动进行过滤。 如何获得的实例 只有代理JAR(与
问题内容: 以下代码将列出目录中的所有文件 尽管这是非常简单的代码,但可以完成工作。 我现在正在寻找一种仅列出结尾处带有.xml(或.XML)的文件的方法,该怎么办? 问题答案: 使用substr和strrpos查看扩展的简单方法
我对工具包的结果计数有这样的输出格式: 我实现了一个循环来查询工具包,然后检查结果值中的相关性,如下所示: 不幸的是,这个解决方案非常缓慢。你对如何做到这一点有什么建议吗?多谢了。 编辑:因为项目太多,所以很慢。