1

我在 Google dataproc 集群版本 1.4 和 spark 版本 2.4.5 中运行 spark 作业,它从 GS 存储桶的路径中读取带有正则表达式的文件并低于错误。

Exception in thread "main" org.apache.spark.sql.AnalysisException: Path does not exist: gs://<gs_path>/<file_name>_\d*.dat;
    at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$org$apache$spark$sql$execution$datasources$DataSource$$checkAndGlobPathIfNecessary$1.apply(DataSource.scala:552)
    at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$org$apache$spark$sql$execution$datasources$DataSource$$checkAndGlobPathIfNecessary$1.apply(DataSource.scala:545)

我能够使用 spark 版本 2.2.3 在 dataproc 1.2 集群中运行相同的作业,并且能够从路径中读取文件。

我们应该在 spark 2.4.5 中形成正则表达式的方式是否有任何变化,或者 dataproc 1.4 集群的 google api 是否有任何变化,这需要改变我用正则表达式创建这些路径的方式。

4

1 回答 1

0

通过在集群创建期间设置这些 Hadoop 属性,在 GCS 连接器中禁用平面 glob 算法后,问题得到解决。

核心:fs.gs.glob.flatlist.enable=false

核心:fs.gs.glob.concurrent.enable=false

我们还将 GCS_CONNECTOR_VERSION 从 1.9.17 升级到 1.9.18。

于 2020-08-12T21:36:20.333 回答