Spark 读取以"/"作为前缀的 S3 路径



我在S3路径有源数据:

s3://mybucket/prefix1/prefix2//prefixX/prefixY/partitionColumn=2023/

我需要创建数据帧读取s3://mybucket/prefix1/prefix2//prefixX/prefixY/但是我得到

"Path does not exist: s3://mybucket/prefix1/prefix2/prefixX/prefixY/". 

原因是它不能识别带有"/"。

df = spark.read.json("s3://mybucket/prefix1/prefix2//prefixxx/prefixxy/")

谁能帮助读取路径具有上述文件夹结构?

期望用给定的S3文件夹路径创建df。

spark和它用于对象存储的文件系统连接器包含这样的假设,即它们正在使用具有目录、子目录等的分层文件系统。

AWS是一个对象存储,如果你努力的话,你可以让一个bucket进入一个spark无法处理数据的状态。

例子
  • 在对象下创建对象;列表中可能/可能找不到它们
  • 用/创建对象。/或/…/in their keys
  • 创建带有//键的对象加上更多。

如果您这样做,rdd扫描将丢失数据,路径解析问题,重命名时丢失数据,删除以/作为后缀的父文件,....

您刚刚成功地创建了一个失败条件。修复:使用"valid"层级目录结构中的路径。

最新更新