Scala 如何使用regex在sc.textFile中包含/排除一些输入文件?
我尝试在file to RDD函数Scala 如何使用regex在sc.textFile中包含/排除一些输入文件?,scala,apache-spark,Scala,Apache Spark,我尝试在file to RDD函数sc.textFile()中使用Apache spark过滤特定文件的日期 我已尝试执行以下操作: sc.textFile("/user/Orders/201507(2[7-9]{1}|3[0-1]{1})*") /user/Orders/201507270010033.gz /user/Orders/201507300060052.gz 这应符合以下要求: sc.textFile("/user/Orders/201507(2[7-9]{1}|3[0-1]{
sc.textFile()
中使用Apache spark过滤特定文件的日期
我已尝试执行以下操作:
sc.textFile("/user/Orders/201507(2[7-9]{1}|3[0-1]{1})*")
/user/Orders/201507270010033.gz
/user/Orders/201507300060052.gz
这应符合以下要求:
sc.textFile("/user/Orders/201507(2[7-9]{1}|3[0-1]{1})*")
/user/Orders/201507270010033.gz
/user/Orders/201507300060052.gz
知道如何实现这一点吗?看看,它似乎使用了某种形式的glob语法。它还揭示了API是Hadoop的FileInputFormat
的一个公开版本
搜索显示提供给FileInputFormat
的addInputPath
或setInputPath
的路径。也许,SparkContext
也使用这些API来设置路径
其中包括:
(匹配0个或更多字符)*
(匹配单个字符)?
(字符类)[ab]
(否定字符类)[^ab]
(字符范围)[a-b]
(替换){a,b}
(转义字符)\c
sc.textFile("/user/Orders/2015072[7-9]*,/user/Orders/2015073[0-1]*")
这里不清楚如何使用交替语法,因为逗号用于分隔路径列表(如上所示)。根据他的评论,没有必要逃跑:
sc.textFile("/user/Orders/201507{2[7-9],3[0-1]}*")
谢谢,
{a,b}
进行替换,而不是我所尝试的:(a | b)
。我试图从某个类型中排除文件,但不幸的是,没有成功,您能提供一个示例吗?像*^tmp之类的东西