我试图在配置单元中执行select*from db.abc操作,此配置单元表是使用spark加载的
“它不工作”显示错误:
错误:java.io.IOException:java.lang.IllegalArgumentException:bucketId超出范围:-1(状态=,代码=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;
我需要在spark-submit或shell中添加任何属性吗?或者使用spark读取此hiv e表的另一种方法是什么
配置单元表示例格式:
CREATE TABLE `hive``( |
| `c_id` decimal(11,0),etc.........
ROW FORMAT SERDE |
| 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' |
| WITH SERDEPROPERTIES (
STORED AS INPUTFORMAT |
| 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' |
| OUTPUTFORMAT |
| 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat' |
LOCATION |
| path= 'hdfs://gjuyada/bbts/scl/raw' |
| TBLPROPERTIES ( |
| 'bucketing_version'='2', |
| 'spark.sql.create.version'='2.3.2.3.1.0.0-78', |
| 'spark.sql.sources.provider'='orc', |
| 'spark.sql.sources.schema.numParts'='1', |
| 'spark.sql.sources.schema.part.0'='{"type":"struct","fields":
[{"name":"Czz_ID","type":"decimal(11,0)","nullable":true,"metadata":{}},
{"name":"DzzzC_CD","type":"string","nullable":true,"metadata":{}},
{"name":"C0000_S_N","type":"decimal(11,0)","nullable":true,"metadata":{}},
{"name":"P_ _NB","type":"decimal(11,0)","nullable":true,"metadata":{}},
{"name":"C_YYYY","type":"string","nullable":true,"metadata":{}},"type":"string","nullable":true,"metadata":{}},{"name":"Cv_ID","type":"string","nullable":true,"metadata":{}},
| 'transactional'='true', |
| 'transient_lastDdlTime'='1574817059')
您试图将transactional table
(transactional=true)
读取到Spark中的问题。
配置单元acid表还不支持正式的Spark
,将acid表的完全转储/增量转储
转换到常规的配置单元ORC/Parquet
分区表,然后使用Spark读取数据。
有一个开放的Jira saprk-15348来添加对读取hive acid
表的支持。
>
如果您在Acid表(从配置单元)上运行major compaction
,则可以只读取base_xxx
目录,而不能读取在该JIRA中寻址的delta目录Spark-16996。
有一些使用SPARK-LLAP读取acid表的变通方法,如本链接所述。
我认为从HDP-3.x
开始,HiveWarehouseSeconnector能够支持读取HiveAcid表。
您可以将事务性表的快照
创建为非事务性
,然后从该表读取数据。
创建表
更新:
CREATE external TABLE `<ext_tab_name>`(
<col_name> <data_type>....etc
)
stored as orc
location '<path>';
insert overwrite table <ext_tab_name> select * from <transactional_tab_name>;
我正在尝试从db中选择*。abc在蜂箱中,这个蜂箱表是使用spark加载的 它不工作显示错误: 错误:java。伊奥。IOException:java。lang.IllegalArgumentException:bucketId超出范围:-1(状态=,代码=0) 当我使用以下属性时,我能够查询配置单元: 现在,当我尝试读取相同的hive表db.abc使用火花,我收到的错误如下: 客户端只有在具有以
我试图从Spark Sql将数据插入到Hive外部表中。我通过以下命令创建了hive外部表 在spark工作中,我编写了以下代码Dataset df=session。read()。选项(“标题”、“真”)。csv(csvInput); 每次运行这段代码时,我都会遇到以下异常
我正在使用Spark SQL读取一个配置单元表,并将其分配给一个scala val 有什么方法可以绕过这个错误吗?我需要将记录插入到同一个表中。 嗨,我试着按建议做,但仍然得到同样的错误。
我有一个奇怪的错误,我正在尝试写数据到hive,它在spark-shell中运行良好,但是当我使用spark-submit时,它抛出的数据库/表在默认错误中找不到。 下面是我试图在spark-submit中编写的代码,我使用的是Spark2.0.0的自定义构建 16/05/20 09:05:18 INFO sparksqlParser:解析命令:spark_schema.measures_2016
states是按国家分区的,所以当我对上面的数据集进行计数时,查询会扫描所有分区。但是如果我这样读的话- 分区被正确修剪。有人能解释为什么当您将表映射到case类时会丢失分区信息吗?
我试图在RDD中将PostgreSQL 9.6中的一个表读取到Spark 2.1.1中,我在Scala中有以下代码。 但是,它返回以下错误: 组织。阿帕奇。火花SparkException:作业因阶段失败而中止:阶段1.0中的任务0失败4次,最近的失败:阶段1.0中的任务0.3丢失(TID 7,10.0.0.13,执行者1):组织。postgresql。util。PSQLException:列索引