在pyspark中使用正则表达式读取文件夹中的文件

Read file in a folder using regex expression in pyspark

我正在尝试在本地和 s3 中使用以下代码从文件夹中读取文件。现在我正在本地测试。

#job_date_str = "2021-08-03T05:20:00"
path = f'{config["input"]["logs"][job]}{job_date_str}(.)*'
# also tried path = f'{config["input"]["logs"][job]}{job_date_str}*'
dataframe = spark.read.schema(schema).json(path, multiLine=multiline)

该文件夹在目录 (config["input"]["logs"][job]) 中有文件 2021-08-03T05:20:00.000-31bnrrpUT5qNLtEX8zWt.log.gz。 (YYYY-MM-DDTh:m:s.000-something)

它向我抛出错误

21/08/03 12:12:49 ERROR logger: error: java.net.URISyntaxException: Relative path in absolute URI: 2021-08-03T05:20:00.000-31bnrrpUT5qNLtEX8zWt.log.gz in get_json

不知道这是什么意思。 这里我有以job_date_str

开头的文件名

但早些时候我尝试使用读取文件。

#job_date_str = "2021-08-03T05:20:00"
path = f'{config["input"]["logs"][job]}{job_date_str}/*'
dataframe = spark.read.schema(schema).json(path, multiLine=multiline)

并且它在本地和 s3 中工作。 这里我将文件存储在 job_date_str 目录中。

我被困在这里,发现 spark 无法处理文件名中的 :,我将 : 更改为 -,现在它按预期工作了。

我在那里找到了这个:
https://issues.apache.org/jira/browse/HDFS-13

如果有人无法更改文件名中的 :,这看起来仍然是个问题。
如果有人找到解决方案,请 post 解决。