当我使用Spark来解析日志文件时,我注意到如果filename的第一个字符是_
,则结果将为空.这是我的测试代码:
SparkSession spark = SparkSession .builder() .appName("TestLog") .master("local") .getOrCreate(); JavaRDDinput = 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) }
我认为这可能是因为_
斯卡拉placeholder
.我该如何避免这个问题?
这与Scala无关.Spark使用Hadoop Input API来读取文件,该文件忽略以下划线(_
)或点(.
)开头的每个文件
我不知道如何在Spark中禁用它.