PySpark textFile 命令中的正则表达式
Regular expressions in PySpark textFile command
我想弄清楚在选择多个感兴趣的文件时我可以将此命令推到多远。例如,我使用以下通配符在多个目录中选取所有感兴趣的文件,但我想使用正则表达式等来限制目录名称的长度。
lines = sc.textFile("/home/spark-1.4.0/A/B_2*/Output/CSV.csv")
但是我可以限制目录名称的长度而不是 *
吗?例如 ^[0-9]{8}$
?或者以任何方式执行此操作而无需借助预过滤来构建有效目录列表。
为了让事情简单明了,您在这里想要的是一个简单的 glob 没有正则表达式。你可以这样做:
glob = "/home/spark-1.4.0/A/B_2{0}/Output/CSV.csv".format("[0-9]" * 8)
lines = sc.textFile(glob)
我想弄清楚在选择多个感兴趣的文件时我可以将此命令推到多远。例如,我使用以下通配符在多个目录中选取所有感兴趣的文件,但我想使用正则表达式等来限制目录名称的长度。
lines = sc.textFile("/home/spark-1.4.0/A/B_2*/Output/CSV.csv")
但是我可以限制目录名称的长度而不是 *
吗?例如 ^[0-9]{8}$
?或者以任何方式执行此操作而无需借助预过滤来构建有效目录列表。
为了让事情简单明了,您在这里想要的是一个简单的 glob 没有正则表达式。你可以这样做:
glob = "/home/spark-1.4.0/A/B_2{0}/Output/CSV.csv".format("[0-9]" * 8)
lines = sc.textFile(glob)