PySpark中使用正则提取文件路径中hone/后的指定字符串
用PySpark批量提取路径指定片段
直接用PySpark内置的regexp_extract函数就能一行完成批量处理,无需递归操作。
实现代码
假设你的文件路径存储在DataFrame的file_path列中,执行以下代码:
from pyspark.sql import functions as F # 新增列存储提取出的目标字符串 df = df.withColumn( "target_str", F.regexp_extract("file_path", r"hone/(\d+)_", 1) )
正则表达式说明
hone/:匹配路径中固定的分界前缀(\d+):捕获需要的连续数字串(对应示例里的120009163)_:匹配数字串后的分界符(如果实际分隔符是-,直接将此处替换为-即可)- 最后一个参数
1表示提取正则表达式中第一个捕获组的内容
效果验证
对于示例路径abfss://or01@intadlsgen2naprod.dfs.core.windows.net/alicona/hone/ 120009163_6722508_.csv,处理后target_str列的值即为120009163。
该方法会自动遍历DataFrame所有行完成批量处理,依托PySpark的分布式特性,处理大量路径时效率有保障。
内容的提问来源于stack exchange,提问作者Ankit Sawa
相关产品推荐
相关产品推荐

