使用pyspark中的regex表达式读取文件夹中的文件



我试图在本地和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"]["log "][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)

和It worked in local和s3。这里我将文件存储在job_date_str中目录。

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


https://issues.apache.org/jira/browse/HDFS-13

仍然看起来像一个问题,如果有人不能改变文件名中的:
如果有人找到解决这个问题的方法,请贴出来。

最新更新