regex - pyspark 使用 s3 中的正则表达式/glob 选择文件子集

标签 regex amazon-s3 apache-spark glob pyspark

我有一个数字文件,每个文件按日期分隔 (date=yyyymmdd)在亚马逊 s3 上。这些文件可以追溯到 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 表达式?

最佳答案

对于您的第一个选项,请使用花括号:

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)

您可以将 glob 与 sc.textFile 一起使用但不是完整的正则表达式。

关于regex - pyspark 使用 s3 中的正则表达式/glob 选择文件子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31543766/

相关文章:

ios - Safari 或 IOS 中视频的 aws-sdk getSignedUrl 不起作用

java - 如何在给定 Oracle SQL 字符串的情况下提取选定的列?

css - 查找所有不以 ";"结尾的 CSS 规则的正则表达式

正则表达式负先行被忽略

Javascript 未在 Heroku 上的 Django 应用程序中呈现

linux - 为什么我不能以其所有者身份写入 encfs 文件夹?

apache-spark - 将 pyspark 脚本提交到远程 Spark 服务器?

hadoop - 将大量 Spark 数据帧合并为一个

java - 无法在 Apache Ignite 中加载类名属性

regex - _实际_ Twitter 主题标签格式?不是你的正则表达式,不是他的代码——真正的?