小编Db8*_*Db8的帖子

spark在读取配置单元表时抛出错误

我正在尝试从 hive 中的 db.abc 中选择 *,这个 hive 表是使用 spark 加载的

它不起作用显示错误:

错误:java.io.IOException:java.lang.IllegalArgumentException:bucketId 超出范围:-1 (state=,code=0)

当我使用以下属性时,我能够查询配置单元:

set hive.mapred.mode=nonstrict;
set hive.optimize.ppd=true;
set hive.optimize.index.filter=true;
set hive.tez.bucket.pruning=true;
set hive.explain.user=false; 
set hive.fetch.task.conversion=none;
Run Code Online (Sandbox Code Playgroud)

现在,当我尝试使用 spark 读取相同的配置单元表 db.abc 时,我收到如下错误:

客户端仅在具有以下功能时才能访问此表:CONNECTORREAD、HIVEFULLACIDREAD、HIVEFULLACIDWRITE、HIVEMANAGESTATS、HIVECACHEINVALIDATE、CONNECTORWRITE。该表可能是 Hive 管理的 ACID 表,或者需要一些 Spark 当前未实现的其他功能;在 org.apache.spark.sql.catalyst.catalog.CatalogUtils$.throwIfNoAccess(ExternalCatalogUtils.scala:280) 在 org.apache.spark.sql.hive.HiveTranslationLayerCheck$$anonfun$apply$1.applyOrElse(HiveTranslationLayerStrategies.scala:280) ) 在 org.apache.spark.sql.hive.HiveTranslationLayerCheck$$anonfun$apply$1.applyOrElse(HiveTranslationLayerStrategies.scala:85) 在 org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformUp$1.apply (TreeNode.scala:289) 在 org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformUp$1。

我需要在 spark-submit 或 shell 中添加任何属性吗?或者使用 spark 读取此 hive 表的替代方法是什么

hive 表示例格式:

  CREATE TABLE `hive``(                   |
|   `c_id` decimal(11,0),etc.........       
  ROW FORMAT SERDE                                   |
|   'org.apache.hadoop.hive.ql.io.orc.OrcSerde'      |
| WITH SERDEPROPERTIES (  
 STORED …
Run Code Online (Sandbox Code Playgroud)

hive bigdata apache-spark apache-spark-sql

3
推荐指数
1
解决办法
3120
查看次数

标签 统计

apache-spark ×1

apache-spark-sql ×1

bigdata ×1

hive ×1