当前位置: 首页 > 知识库问答 >
问题:

Spark 2.2.0-加载特定的文件列表

董永宁
2023-03-14

我想把一个特定的文件列表加载到Spark中。我创建了一个UDF来过滤文件列表,因此我获得了一个seq 和我要加载的文件。我试图使用public dataset csv(cala.collection.seq paths) 指向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)

  }
}

共有1个答案

楚涵润
2023-03-14

错误是告诉您需要使用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查看扩展的简单方法

  • 我对工具包的结果计数有这样的输出格式: 我实现了一个循环来查询工具包,然后检查结果值中的相关性,如下所示: 不幸的是,这个解决方案非常缓慢。你对如何做到这一点有什么建议吗?多谢了。 编辑:因为项目太多,所以很慢。