首页 > 解决方案 > 使用 PySpark 从名称不包含字符串的文件夹中读取文件

问题描述

我有一个文件夹,其中的文件类似于 -

./env_california_0100.xml
./env_california_0200.xml
./env_california_0300.xml
./env_california_0400.xml
./env_0100.xml
./env_0200.xml
./env_0300.xml
./env_0400.xml

使用 pyspark,如果我想读取名称包含字符串 'california' 的文件,那么我会使用

df=spark.read.format("com.databricks.spark.xml").option("rowTag","someTag").load("/some_folder/*california*.xml")

但是如何读取没有字符串 'california' 的文件呢?

标签: pythonregexpysparkglob

解决方案


使用 glob 提取文件列表,然后在加载调用中解压缩该列表:

   .load(*glob.glob( "/some_folder/*[!california]*.xml"))

因为我们可以像这样加载多个文件:.load(path1,path2,....)


推荐阅读