我有一个数字文件,每个文件按照亚马逊s3上的日期(date=yyyymmdd)
进行隔离。文件可以追溯到6个月,但我想限制我的脚本仅使用最近3个月的数据。我不确定我是否能够使用正则表达式来执行sc.textFile("s3://path_to_dir/yyyy[m1,m2,m3]*")
其中m1,m2,m3代表我想要使用的当前日期的3个月。
一个讨论还建议使用像sc.textFile("s3://path_to_dir/yyyym1*","s3://path_to_dir/yyyym2*","s3://path_to_dir/yyyym3*")
这样的东西,但这对我来说似乎不起作用。
sc.textFile( )
是否采用正则表达式?我知道你可以使用glob表达式,但我不确定如何将上述情况表示为glob表达式?
答案 0 :(得分:3)
对于您的第一个选项,请使用花括号:
sc.textFile("s3://path_to_dir/yyyy{m1,m2,m3}*")
对于第二个选项,您可以将每个单独的glob读入RDD,然后将这些RDD合并为一个:
m1 = sc.textFile("s3://path_to_dir/yyyym1*")
m2 = sc.textFile("s3://path_to_dir/yyyym2*")
m3 = sc.textFile("s3://path_to_dir/yyyym3*")
all = m1.union(m2).union(m3)
您可以将globs与sc.textFile
结合使用,但不能使用完整的正则表达式。