触发“ basePath”选项设置

jld*_*ont 2 apache-spark pyspark google-cloud-dataproc

当我做:

allf = spark.read.parquet(“ gs:// bucket / folder / *”)

我得到:

java.lang.AssertionError:断言失败:检测到冲突的目录结构。可疑路径:

...以及路径列表后的以下消息:

如果提供的路径是分区目录,请在数据源的选项中设置“ basePath”以指定表的根目录。如果有多个根目录,请分别加载它们,然后合并它们。

我是Spark的新手。我相信我的数据源实际上是“文件夹”的集合(类似base/top_folder/year=x/month=y/*.parquet),我想加载所有文件并进行转换。

谢谢你的帮助!

  • 更新1:我已经看过Dataproc控制台,并且在创建集群时无法设置“选项”。
  • 更新2:我已经签入群集的“ cluster.properties”文件,没有这样的选项。难道我必须添加一个并重置集群吗?

Ang*_*vis 7

根据有关Parquet 分区发现的 Saprk文档,我相信您可以从

allf = spark.read.parquet("gs://bucket/folder/*")
Run Code Online (Sandbox Code Playgroud)

allf = spark.read.parquet("gs://bucket/folder")
Run Code Online (Sandbox Code Playgroud)

应该发现并加载所有实木复合地板分区。假设数据以“文件夹”作为其基本目录写入。

如果目录库/文件夹实际上包含多个数据集,则需要独立加载每个数据集,然后将它们合并在一起。