Spark如何读取文件的下划线是文件名的开头?

时间:2016-07-20 09:38:56

标签: scala apache-spark

当我使用Spark来解析日志文件时,我注意到如果文件名的第一个字符是_,结果将为空。这是我的测试代码:

SparkSession spark = SparkSession
  .builder()
  .appName("TestLog")
  .master("local")
  .getOrCreate();
JavaRDD<String> input = spark.read().text("D:\\_event_2.log").javaRDD();
System.out.println("size : " + input.count());

如果我将文件名修改为event_2.log,代码将正确运行。 我发现text函数定义为:

@scala.annotation.varargs
def text(paths: String*): Dataset[String] = {
  format("text").load(paths : _*).as[String](sparkSession.implicits.newStringEncoder)
}

我认为这可能是因为_是scala的placeholder。我该如何避免这个问题?

1 个答案:

答案 0 :(得分:6)

这与Scala无关。 Spark使用Hadoop输入API来读取文件,该文件忽略以下划线(_)或点(.)开头的每个文件

我不知道如何在Spark中禁用它。