无法读取基于正则表达式的文件 spark

Posted

技术标签:

【中文标题】无法读取基于正则表达式的文件 spark【英文标题】:cannot read files based on regular expressions spark 【发布时间】:2020-04-02 23:34:49 【问题描述】:

我正在尝试在 pyspark 中加载包含 2015 年至 2020 年数据的文件。 我使用正则表达式。

所有正则表达式都在一个网站上在线检查。但是,当我在 pyspark 中使用它们时,它会显示错误。看起来hdfs不喜欢括号。我尝试了不同的变体

# .load("hdfs:///data/ghcnd/daily/20(1[5-9]|20).csv.gz")

# .load("hdfs:///data/ghcnd/daily/20(15|16|17|18|19|20).csv.gz")

如何正确编写它们,以便我可以从 2015 年到 2020 年的文件中加载数据?

【问题讨论】:

【参考方案1】:

尝试使用花括号 并保留所有值。

.load("hdfs:///data/ghcnd/daily/202015,16,17.csv.gz")

Example:

读取2015,2016文件

spark.read.csv("/tmp/2015,16.csv").show()
#+----+
#| _c0|
#+----+
#|2015|
#|2016|
#+----+

$cat 2015.csv
2015
$cat 2016.csv
2016

【讨论】:

以上是关于无法读取基于正则表达式的文件 spark的主要内容,如果未能解决你的问题,请参考以下文章

通过从文件中读取来提升正则表达式匹配

在简单的正则表达式替换中获取 NPE(Spark 上的 Scala)

pyspark用正则表达式读取csv文件

检查行是不是匹配正则表达式

从文件中读取索引“n”低于与给定正则表达式匹配的行的所有行

使用正则表达式中的 CSS 突出显示从文件中读取的文本的语法