Scala 如何使用regex在sc.textFile中包含/排除一些输入文件?

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]{

我尝试在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]{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之类的东西