Apache-spark-使用冰川对象从aws-s3存储桶读取数据

时间:2020-01-10 00:11:36

标签: amazon-web-services apache-spark amazon-s3 parquet amazon-glacier

情况是这样的:

  • 我正在使用spark来读取s3-bucket,其中某些对象(parquet)已转换为glacier存储类。 我并不想读取这些对象,但是使用这些类型的存储桶(https://jira.apache.org/jira/browse/SPARK-21797)的spark出现错误。

有一种解决方法可以“解决”此问题:https://jira.apache.org/jira/browse/SPARK-21797?focusedCommentId=16140408&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16140408。但是查看代码https://github.com/apache/spark/pull/16474/files,仍然会进行呼叫,并且只会跳过那些引发IOException的文件。有没有更好的方法来配置Spark以仅在Standard上加载s3-bucket个对象??

1 个答案:

答案 0 :(得分:0)

  1. 有人(您?)解决了https://issues.apache.org/jira/browse/HADOOP-14837;尝试读取冰川数据失败时,让s3a引发特定异常
  2. 然后,火花需要在发生时识别并跳过它

当对象冰化时,我不认为S3的LIST调用标志-因此在查询计划/分区期间无法进行过滤。在此过程中,为每个对象调用HEAD将会非常昂贵。