Cannot inspect org.apache.hadoop.hive.serde2.io.HiveDecimalWritable 问题分析处理
报错; org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.UnsupportedOperationException: Cannot inspect org.apache.hadoop.hive.serde2.io.HiveDecimalWritable
该问题常见于parquet格式hive表查询时,一般原因为hive表对应数据文件元数据对应格式与hive表定义格式不匹配导致。
可根据查看parquet文件信息验证parquet文件元数据格式与hive表定义元数据进行比对,将修改Hive表定义字段类型即可解决
调整到一致的方法:
1、修改hive表的字段类型 注意如果需要级联修改需要使用关键字cascade
ALTER TABLE table_name [PARTITION partition_spec] CHANGE [COLUMN] col_old_name col_new_name column_type [CASCADE|RESTRICT];
2、修改生成parquet的字段类型。
查看hive元数据:
CREATE TABLE ods_device_andon_new.md_route_process_cfg(
id string COMMENT ‘??’,
md_route_version_id string COMMENT ‘???ID’,
md_process_id string COMMENT ‘???ID’,
md_section_id string COMMENT ‘???ID’,
md_check_time_rule_id string COMMENT ‘???ID’,
is_wo_start string COMMENT ‘???0???1?’,
is_wo_finished string COMMENT ‘???0???1?’,
md_assess_rule_id string COMMENT ‘???ID’,
is_kpi_finished string COMMENT ‘???0???1?’,
is_warehouse_input string COMMENT ‘???0???1?’,
is_shipout string COMMENT ‘???,?0???1?’,
max_retest decimal(10,0) COMMENT ‘???’,
sys_org_id string,
project_code string COMMENT ‘???’,
created_dt timestamp COMMENT ‘???’,
creator string COMMENT ‘???’,
last_edited_dt timestamp COMMENT ‘???’,
last_editor string COMMENT ‘???’,
ap_mainversion string COMMENT ‘???’,
db_mainversion string COMMENT ‘???’,
timezone string,
is_invalid string COMMENT ‘???’,
invalid_dt timestamp COMMENT ‘???’,
invalid_reason string COMMENT ‘???’,
description string,
packtype_dic string COMMENT ‘???:SN/TRAY/CARTON/PALLET’,
environment_parameters string COMMENT ‘???-JSON?? ??? IP MAC ?? ?? ?? WO PN ??? ???’,
service_code string COMMENT ‘???’,
sourceinteractioncode string)
ROW FORMAT SERDE
‘org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe’
STORED AS INPUTFORMAT
‘org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat’
OUTPUTFORMAT
‘org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat’
LOCATION
‘hdfs://vnha/user/hive/warehouse/ods_device_andon_new.db/md_route_process_cfg’
TBLPROPERTIES (
‘transient_lastDdlTime’=‘1728580150’)
查看 parquet 文件 schema
下载 parquet-tools-1.9.0.jar
—— https://mvnrepository.com/artifact/org.apache.parquet/parquet-tools/1.11.2
—— https://mvnrepository.com/artifact/org.apache.parquet/parquet-tools/1.9.0
hadoop jar ./parquet-tools-1.9.0.jar schema hdfs_file_path
不正常表:
hdfs dfs -ls /user/hive/warehouse/ods_device_andon_new.db/md_route_process_cfg/
Found 2 items
-rw-r–r-- 3 hive supergroup 0 2024-10-11 01:03 /user/hive/warehouse/ods_device_andon_new.db/md_route_process_cfg/_SUCCESS
-rw-r–r-- 3 hive supergroup 7310 2024-10-11 01:03 /user/hive/warehouse/ods_device_andon_new.db/md_route_process_cfg/part-00000-23c35f91-fc2b-4dba-aada-4caf5b49231e-c000.snappy.parquet
查看Parquet文件格式:
hadoop jar /home/sunxy/parquet-tools-1.9.0.jar schema /user/hive/warehouse/ods_device_andon_new.db/md_route_process_cfg/part-00000-23c35f91-fc2b-4dba-aada-4caf5b49231e-c000.snappy.parquet
正常表:
hdfs dfs -ls /user/hive/warehouse/ods_device_andon_new.db/md_shift_detail/000000_0
-rwxr-xr-x 3 hive hive 7152 2024-10-11 00:08 /user/hive/warehouse/ods_device_andon_new.db/md_shift_detail/000000_0
hadoop jar /home/sunxy/parquet-tools-1.9.0.jar schema /user/hive/warehouse/ods_device_andon_new.db/md_shift_detail/000000_0
在使用insert into table时,每次会再添加一份文件000000_0
clustered by语句主要是控制生成的part-0000*的文件个数 ,分桶。
WARNING: Use “yarn jar” to launch YARN applications.
message spark_schema {
optional fixed_len_byte_array(9) ID (DECIMAL(20,0));
optional fixed_len_byte_array(9) MD_ROUTE_VERSION_ID (DECIMAL(20,0));
optional fixed_len_byte_array(9) MD_PROCESS_ID (DECIMAL(20,0));
optional fixed_len_byte_array(9) MD_SECTION_ID (DECIMAL(20,0));
optional fixed_len_byte_array(9) MD_CHECK_TIME_RULE_ID (DECIMAL(20,0));
optional fixed_len_byte_array(1) IS_WO_START (DECIMAL(1,0));
optional fixed_len_byte_array(1) IS_WO_FINISHED (DECIMAL(1,0));
optional fixed_len_byte_array(9) MD_ASSESS_RULE_ID (DECIMAL(20,0));
optional fixed_len_byte_array(1) IS_KPI_FINISHED (DECIMAL(1,0));
optional fixed_len_byte_array(1) IS_WAREHOUSE_INPUT (DECIMAL(1,0));
optional fixed_len_byte_array(1) IS_SHIPOUT (DECIMAL(1,0));
optional fixed_len_byte_array(16) MAX_RETEST (DECIMAL(38,0));
optional fixed_len_byte_array(9) SYS_ORG_ID (DECIMAL(20,0));
optional binary PROJECT_CODE (STRING);
optional int96 CREATED_DT;
optional binary CREATOR (STRING);
optional int96 LAST_EDITED_DT;
optional binary LAST_EDITOR (STRING);
optional binary AP_MAINVERSION (STRING);
optional binary DB_MAINVERSION (STRING);
optional binary TIMEZONE (STRING);
optional fixed_len_byte_array(1) IS_INVALID (DECIMAL(1,0));
optional int96 INVALID_DT;
optional binary INVALID_REASON (STRING);
optional binary DESCRIPTION (STRING);
optional binary PACKTYPE_DIC (STRING);
optional binary ENVIRONMENT_PARAMETERS (STRING);
optional binary SERVICE_CODE (STRING);
optional binary SOURCEINTERACTIONCODE (STRING);
}
用 Hive 生成数据的时候,是没有 _SUCCESS 文件的。
但是我们在跑完 MR 或者 Spark 程序时,会发现数据输出目录一般都会有一个 _SUCCESS 的空文件。这个 _SUCCESS 空文件用来表示该任务运行成功。
举个例子,比如我们有两个 Spark 任务:A 任务和 B 任务。B 任务依赖于 A 任务,也就是说 B 任务要根据 A 任务的结果再判断是否运行。这时我们就可以根据 A 任务的输出目录下是否有 _SUCCESS 文件来判断 A 任务是否运行成功。
但是在用 DataX 读取 HDFS 中的数据时,有 _SUCCESS 文件会使任务报错,因此可以在 Spark 代码中加以限制,不生成 _SUCCESS 文件即可。
在 Spark 的 Driver 端参数里加上如下参数即可。
sc.hadoopConfiguration.set(“mapreduce.fileoutputcommitter.marksuccessfuljobs”, “false”)
或者在 Spark SQL 中设置如下参数:
set mapreduce.fileoutputcommitter.marksuccessfuljobs = false;
相关文章:
Cannot inspect org.apache.hadoop.hive.serde2.io.HiveDecimalWritable 问题分析处理
报错; org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.UnsupportedOperationException: Cannot inspect org.apache.hadoop.hive.serde2.io.HiveDecimalWritable 该问题常见于parquet格式hive表查询时,一般原因为hive表对应数据文件元数据对应格式与…...
电子取证新视角:USB键盘流量提取密码方法研究与实现
0x01 引言 在当今数字化时代,USB设备的广泛使用使得信息安全和电子取证领域面临着新的挑战与机遇。特别是USB键盘,作为一种常见的输入设备,其流量中可能包含用户输入的敏感信息,如密码和其他私人数据。因此,研究USB键…...
Tongweb7049m4+THS6010-6012配置故障轉移+重試机制(by lqw)
使用场景 1.ths代理tongweb多套后端,假如有其中一套tongweb因为服务器重启或者宕机后没有及时启动,导致ths一直轮询在这个出故障的节点上。 2.即使在tongweb重启了,有的应用启动也需要一定的时间,这个时候只是启动了应用端口&…...
在线客服系统网站源码-网页聊天客服实现代码
源码简介 在线客服系统 – 网上客服系统,在线客服系统网站源码。 消息预知功能就是别人在聊天框打字你都能看到 1.新增客服坐席消息互动,客服之间可以互相接收消息,可以智能分配 2.新增消息预知功能,可提前预知访客已输入未发…...
JioNLP:一款实用的中文NLP预处理工具包
一、什么是 JioNLP? JioNLP是一个面向NLP开发者的工具包,提供了常见的中文文本预处理、解析等功能,使用简单、高效准确、无需配置,可极大加快NLP项目的开发进度。 主要特点包括: 代码开源,使用MIT协议功能丰富,涵盖多个NLP预处理需求使用简单,无需复杂配置即可调用准确高效…...
GR-ConvNet论文 学习笔记
GR-ConvNet 文章目录 GR-ConvNet前言一、引言二、相关研究三、问题阐述四、方法A.推理模块B.控制模块C.模型结构D.训练方法E.损失函数 五、评估A.数据集B.抓取评判标准 六、实验A.设置B.家庭测试物体C.对抗性测试物体D.混合物体 七、结果A.康奈尔数据集B.Jacquard数据集C.抓取新…...
windows环境批量删除指定目录下的全部指定文件
写在开头: 1. 涉及文件删除,先在小范围内测试(更改D:\扫描文件路径) 2. 命令会递归该目录下的所有文件 命令: forfiles /p D:\ /s /m _maven.repositories /c "cmd /c del path"解释: /p D:\ …...
水深探测仪的作用和使用方法
在水域救援的行动里,救援人员时刻面临着复杂多变、充满未知的水域状况。当接到救援任务奔赴现场,那片需要涉足的水域就像一个神秘莫测的异世界,挑战着所有人的认知与勇气。 水深探测仪作为一种专用于测量水域深度的设备,通过声波和…...
Leetcode 搜索插入位置
这段代码的核心思想是 二分查找,用于在一个已经排序的数组中查找目标值的位置。如果目标值存在于数组中,返回它的索引;如果目标值不存在,返回它按顺序应该插入的位置。 算法思想步骤: 定义左右边界: 我们使…...
jsp怎么实现点赞功能
在JSP中实现点赞功能通常涉及前端页面的设计、后端逻辑处理以及数据存储。为了实现点赞功能,你可以使用以下步骤: 前端(JSP页面)设计 前端部分包括显示点赞按钮,并通过Ajax发送点赞请求,以避免页面刷新。 …...
取消microsoft edge作为默认浏览器 ,修改方法,默认修改不了的原因
将Microsoft Edge或其它浏览器设置为默认浏览器,可以尝试以下方法来解决此问题: 一, 通过浏览器设置修改:打开Microsoft Edge浏览器,单击右上角的“更多”按钮,然后选择“设置”。在设置页面左侧找到“默认…...
C++面试速通宝典——17
283. Nginx负载均衡算法 Nginx支持多种负载均衡算法。 轮询(Round Robin):默认算法,按顺序逐个分配请求到后端服务器。加权轮询(Weighted Round Robin):与轮询类似,但…...
10、论文阅读:基于双阶对比损失解纠缠表示的无监督水下图像增强
Unsupervised Underwater Image Enhancement Based on Disentangled Representations via Double-Order Contrastive Loss 前言引言方法介绍解耦框架多尺度生成器双阶对比损失双阶对比损失总结损失函数实验前言 在水下环境中拍摄的图像通常会受到颜色失真、低对比度和视觉质量…...
Git配置token免密登录
配置token免密登录 如果不用ssh免密登录,还有其他基于Token那得免密登录方法吗? 2021年开始,github就不能使用密码登录git了,需要使用token作为密码登录,需要自己在setting中创建。 那么每次都需要我手动输入token密…...
活动预告|博睿数据将受邀出席GOPS全球运维大会上海站!
第二十四届 GOPS 全球运维大会暨研运数智化技术峰会上海站将于2024年10月18日-19日在上海中庚聚龙酒店召开。大会将为期2天,侧重大模型、DevOps、SRE、AIOps、BizDevOps、云原生及安全等热门技术领域。特设了如大模型 运维/研发测试、银行/证券数字化转型、平台工程…...
Flutter技术学习
以下内容更适用于 不拘泥于教程学习,而是从简单项目入手的初学者。 在开始第一个项目之前,我们先要了解 两个概念。 Widget 和 属性 Widget 是用户界面的基本构建块,可以是任何 UI 元素。属性 是 widget 类中定义的变量,用于配…...
Kubernetes网络通讯模式深度解析
Kubernetes的网络模型建立在所有Pod能够直接相互通讯的假设之上,这构建了一个扁平且互联的网络空间。在如GCE(Google Cloud Engine)等云环境中,这一网络模型已预先配置,但在自建的Kubernetes集群中,我们需要…...
SBTI科学碳目标是什么?有什么重要意义
SBTI(Science Based Targets initiative),即科学碳目标倡议,是一个由全球环境信息研究中心(CDP)、联合国全球契约组织(UNGC)、世界资源研究所(WRI)和世界自然…...
英特尔新旗舰 CPU 将运行更凉爽、更高效,适合 PC 游戏
英特尔终于解决了台式机 CPU 发热和耗电的问题。英特尔的新旗舰 Core Ultra 200S 系列处理器将于 10 月 24 日上市,该系列专注于每瓦性能,比之前的第 14 代芯片运行更凉爽、更高效。这些代号为 Arrow Lake S 的处理器也是英特尔首款内置 NPU(…...
MySQL 启动失败 (code=exited, status=1/FAILURE) 异常解决方案
目录 前言1. 问题描述2. 查看错误日志文件2.1 确认日志文件路径2.2 查看日志文件内容 3. 定位问题3.1 问题分析 4. 解决问题4.1 注释掉错误配置4.2 重启 MySQL 服务 5. 总结结语 前言 在日常运维和开发过程中,MySQL数据库的稳定运行至关重要。然而,MySQ…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验
一、多模态商品数据接口的技术架构 (一)多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如,当用户上传一张“蓝色连衣裙”的图片时,接口可自动提取图像中的颜色(RGB值&…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...
