PySpark textFile 命令中的正则表达式

Posted

技术标签:

【中文标题】PySpark textFile 命令中的正则表达式【英文标题】:Regular expressions in PySpark textFile command 【发布时间】:2015-06-18 15:34:31 【问题描述】:

我试图弄清楚在选择多个感兴趣的文件时我可以推动这个命令多远。例如,我使用以下通配符在多个目录中提取所有感兴趣的文件,但我想使用正则表达式等来限制目录名称的长度。

lines = sc.textFile("/home/spark-1.4.0/A/B_2*/Output/CSV.csv")

但是我可以限制目录名的长度而不是*吗?例如^[0-9]8$?或者任何不借助预过滤来构建有效目录列表的方式。

【问题讨论】:

【参考方案1】:

只是为了让事情变得简单,你想要的是一个简单的glob 没有正则表达式。你可以这样做:

glob = "/home/spark-1.4.0/A/B_20/Output/CSV.csv".format("[0-9]" * 8)
lines = sc.textFile(glob)

【讨论】:

以上是关于PySpark textFile 命令中的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

PySpark 中的正则表达式

pyspark 中的正则表达式来检查字母和空格(也可以使用 uni 代码)

Pyspark:UDF 将正则表达式应用于数据帧中的每一行

如何通过 Pyspark 中同一数据框中另一列的正则表达式值过滤数据框中的一列

如何使用正则表达式从 PySpark databricks 笔记本中的文件中解析表名

使用 pyspark 中的正则表达式将数字添加到字符串中最后一个字符之前的字符串