【问题标题】:Read file in a folder using regex expression in pyspark使用 pyspark 中的正则表达式读取文件夹中的文件
【发布时间】:2021-10-08 16:25:33
【问题描述】:

我正在尝试使用本地和 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 目录中。

【问题讨论】:

  • 显然,path 的值是2021-08-03T05:20:00.000-31bnrrpUT5qNLtEX8zWt.log.gz,它被认为是相对路径。你应该给出一个绝对路径,这意味着以/开头的东西。

标签: apache-spark pyspark apache-spark-sql amazon-emr


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多