小编Pab*_*ego的帖子

Hive分区表读取了所有分区,尽管具有Spark过滤器

我正在使用带有scala的spark来读取特定的Hive分区。分区是yearmonthdayab

scala> spark.sql("select * from db.table where year=2019 and month=2 and day=28 and a='y' and b='z'").show

但是我得到这个错误:

org.apache.spark.SparkException:由于阶段失败而导致作业中止:阶段0.0中的任务236失败4次,最近一次失败:阶段0.0中的任务236.3(TID 287,服务器,执行器17)丢失:org.apache.hadoop。 security.AccessControlException:权限被拒绝:user = user,access = READ,inode =“ / path-to-table / table / year = 2019 / month = 2 / day = 27 / a = w / b = x / part-00002 “:user:group:-rw-rw ----

如您所见,spark试图读取一个不同的分区,而我在那里没有权限。

不应该这样,因为我创建了一个过滤器,而这个过滤器就是我的分区。

我用Hive尝试了相同的查询,并且运行完美(无访问问题)

Hive> select * from db.table where year=2019 and month=2 and day=28 and a='y' and b='z'; …

hive scala apache-spark apache-spark-sql

10
推荐指数
1
解决办法
1145
查看次数

标签 统计

apache-spark ×1

apache-spark-sql ×1

hive ×1

scala ×1