我有多个文本文件要使用JavaSparkContext读取,并且每个文件可能略有不同并包含多行记录,因此我想使用正则表达式分隔符来查找记录。是否可以使用正则表达式配置textinputformat分隔符?
..
String regex = "^(?!(^a\\s|^b\\s))";
JavaSparkContext jsc = new JavaSparkContext(conf);
jsc.hadoopConfiguration().set("textinputformat.record.delimiter", regex);
..
答案 0 :(得分:1)
不幸的是,事实并非如此。 textinputformat.record.delimiter
必须是一种修复模式。使用Spark时,您必须选择:
wholeTextFiles
(或binaryFiles
)并使用正则表达式拆分字符串 - 易于使用,但不会缩放到大文件。