当我使用Spark来解析日志文件时,我注意到如果filename的第一个字符是_,则结果将为空.这是我的测试代码:
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());
Run Code Online (Sandbox Code Playgroud)
如果我将文件名修改为event_2.log,代码将正确运行它.我发现该text函数定义为:
@scala.annotation.varargs
def text(paths: String*): Dataset[String] = {
format("text").load(paths : _*).as[String](sparkSession.implicits.newStringEncoder)
}
Run Code Online (Sandbox Code Playgroud)
我认为这可能是因为_斯卡拉placeholder.我该如何避免这个问题?
就像C代码一样:
#include<stdio.h>
int main(void) {
char c = '\97';
printf("%d",c);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
结果是55,但我无法理解如何计算它.我知道八进制数或十六进制数跟在'\' 97后面,是十六进制数吗?