当前位置: 首页 > news >正文

华为开源carbondata中的使用问题处理

carbondata中的使用问题处理
Q:什么是不良记录?

A:由于数据类型不兼容而无法加载到CarbonData中的记录或为空或具有不兼容格式的记录被归类为不良记录。
Q:CarbonData中的不良记录存储在哪里?

A:不良记录存储在carbon.properties文件的carbon.badRecords.location中设置的位置。
Q:如何启用不良记录日志?

A:在加载数据时,我们可以指定处理不良记录的方法。 为了分析错误记录的原因,必须将参数BAD_RECORDS_LOGGER_ENABLE设置为TRUE。可以通过参数BAD_RECORDS_ACTION指定多种处理错误记录的方法。
• 使用NULL值填充不正确的CSV行值并加载 在CarbonData中的数据中,在查询中设置以下内容:‘BAD_RECORDS_ACTION’=‘FORCE’
• 要在原始CSV中写入错误记录而不用NULL填充不正确的值(在参数carbon.badRecords.location中设置),请设置以下内容 在查询中:‘BAD_RECORDS_ACTION’=‘REDIRECT’
Q:如何忽略不良记录?

A:若要忽略不良记录以免它们存储在原始csv中,我们需要在查询中设置以下内容:‘BAD_RECORDS_ACTION’=‘IGNORE’。
Q:创建Carbon会话时如何指定存储位置?

A:Carbon数据使用创建Carbon会话时指定的存储位置来存储元数据,如架构,字典文件,字典元数据和排序索引。
尝试使用以下指定的storepath创建carbonsession 方式:val carbon = SparkSession.builder().config(sc.getConf).getOrCreateCarbonSession(<store_path>)
Example: val carbon = SparkSession.builder().config(sc.getConf).getOrCreateCarbonSession(“hdfs://localhost:9000/carbon/store”)
Q:什么是Carbon锁类型?

A:Apache CarbonData获取文件上的锁,以防止并发操作修改相同的文件。 锁的类型取决于存储位置,对于HDFS,我们将其指定为HDFSLOCK类型。 默认情况下,它设置为LOCALLOCK。 属性carbon.lock.type配置指定在表的并发操作期间要获取的锁的类型。 可以使用以下值设置此属性:LOCALLOCK-此锁定在本地文件系统上作为文件创建。 当一台机器上仅运行一个Spark驱动程序(旧式服务器)并且没有同时启动其他CarbonData Spark应用程序时,此锁定很有用。 HDFSLOCK:此锁在HDFS文件系统上作为文件创建。 当启动多个CarbonData Spark应用程序并且集群上没有任何ZooKeeper运行且HDFS支持基于文件的锁定时,此锁定很有用。
Q:如何解决抽象方法错误?

A:为了构建CarbonData项目,必须指定Spark版本。使用Maven生成项目时,需要指定Spark版本。
Q:在异常情况下执行插入操作时,Carbon的行为如何?

A:Carbon支持插入操作,可以参考DML Operations on CarbonData中提到的语法。首先,在spark-sql中创建一个源表,并将数据加载到该创建的表中。

CREATE TABLE source_table(id String,name String,city String)ROW FORMAT DELIMITED FIELDS TERMINATED BY “,”

SELECT * FROM source_table;
id name city
1 jack beijing
2 erlu hangzhou
3 davi shenzhen

场景 1:
假设carbon表中的列顺序与源表中的列顺序不同,使用脚本“ SELECT * FROM碳表”进行查询,将获得与源表类似的列顺序,而不是像期望中那样在carbon表中列顺序。

CREATE TABLE IF NOT EXISTS carbon_table(id String,city String,name String)STORED BY ‘carbondata’;

INSERT INTO TABLE carbon_table SELECT * FROM source_table;

SELECT * FROM carbon_table;
id city name
1 jack beijing
2 erlu hangzhou
3 davi shenzhen

结果显示,第二列是carbon表中的城市,但里面是名称,例如jack。此现象与将数据插入到hive表中相同。如果要将数据插入到carbon表中的相应列中,则必须在插入语句中指定相同的列顺序。

场景 2:

当Carbon表中的列数与select语句中指定的列数不同时,插入操作将失败。以下插入操作将失败。

INSERT INTO TABLE carbon_table SELECT id, city FROM source_table;

场景 3:
carbon表中的列类型与select语句中指定的列不同时。插入操作仍然会成功,但是您可能会得到NULL,因为在转换类型失败时NULL将是替代值。
Q:为什么聚合查询没有从聚合表中获取数据?

A:以下是无法从汇总表中获取数据的汇总查询:

方案1:当查询中存在SubQuery谓词时。

create table gdp21(cntry smallint, gdp double, y_year date) stored by ‘carbondata’;
create datamap ag1 on table gdp21 using ‘preaggregate’ as select cntry, sum(gdp) from gdp21 group by cntry;
select ctry from pop1 where ctry in (select cntry from gdp21 group by cntry);

方案2:当聚合函数与“ in”过滤器一起使用时。

create table gdp21(cntry smallint, gdp double, y_year date) stored by ‘carbondata’;
create datamap ag1 on table gdp21 using ‘preaggregate’ as select cntry, sum(gdp) from gdp21 group by cntry;
select cntry, sum(gdp) from gdp21 where cntry in (select ctry from pop1) group by c

方案3:当聚合函数具有“ join”且过滤条件相等时。
create table gdp21(cntry smallint, gdp double, y_year date) stored by ‘carbondata’;
create datamap ag1 on table gdp21 using ‘preaggregate’ as select cntry, sum(gdp) from gdp21 group by cntry;
select cntry,sum(gdp) from gdp21,pop1 where cntry=ctry group by cntry;
Q:为什么即使在驱动程序端Dataload Command失败后,所有执行程序仍在Spark UI中显示成功?

A:在最大重试尝试次数后,Spark executor显示任务失败,但是加载具有不良记录的数据并将BAD_RECORDS_ACTION(carbon.bad.records.action)设置为“ FAIL”将仅尝试一次,但会向驱动程序发送信号给失败 而不是抛出异常重试,因为如果发现不良记录并且BAD_RECORDS_ACTION设置为失败,就没有重试的可能性。因此,Spark执行程序将这一尝试显示为成功,但是命令实际上执行失败。 可以检查任务尝试或执行程序日志以观察失败原因。
Q:为什么查询SDK Writer输出时选择查询输出的时区结果不同?

A:SDK Writer是一个独立的实体,因此SDK Writer可以从具有不同时区的非群集计算机生成Carbondata文件。 但是在群集中,当读取这些文件时,它总是占用群集时区。 因此,时间戳记和日期数据类型字段的值不是原始值。 如果要在写入时控制数据的时区,请通过调用以下API在SDK Writer中设置集群的时

相关文章:

华为开源carbondata中的使用问题处理

carbondata中的使用问题处理 Q&#xff1a;什么是不良记录&#xff1f; A&#xff1a;由于数据类型不兼容而无法加载到CarbonData中的记录或为空或具有不兼容格式的记录被归类为不良记录。 Q&#xff1a;CarbonData中的不良记录存储在哪里&#xff1f; A&#xff1a;不良记录…...

AI:76-基于机器学习的智能城市交通管理

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…...

区块链游戏,游戏开发

区块链游戏是一种基于区块链技术的新兴游戏类型&#xff0c;它具有去中心化、安全性高、透明度高、可追溯等特点。与传统的游戏开发相比&#xff0c;区块链游戏开发需要更多的技术和知识储备&#xff0c;同时也需要更加注重游戏本身的玩法和用户体验。 在区块链游戏中&#xff…...

单片机程序无法下载?

原因一&#xff1a;电源问题 电源可能是导致STM32微控制器无法下载程序的一个常见原因。确保电源稳定对于正常运行和下载程序至关重要。以下是一些电源问题&#xff1a; 1. 电源电压不足&#xff1a;如果STM32微控制器没有足够的电压供应&#xff0c;它可能无法正常工作或下载程…...

【数据库】【sql】如何用SQL实现跨行计算

【背景】 这里的跨行计算不是指整体聚合类的函数比如SUM等的功能&#xff0c;而是指递归算法。 比如我接到有需求&#xff0c;有一个结果字段需要是目前所有行该字段的和&#xff0c;这是属于递归类的算法&#xff0c;SQL中如何实现呢&#xff1f; 【方法】 可以使用窗口函数…...

Oracle(概念含安装)

Oracle是一种关系数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;是由美国甲骨文公司&#xff08;Oracle Corporation&#xff09;开发的。它是一个客户端/服务器系统&#xff0c;可以在各种操作系统上运行&#xff0c;包括Windows、Linux和Unix等。Oracle的设计重点…...

P6入门:项目初始化4-项目详情之预算日志及汇总Budget

前言 使用项目详细信息查看和编辑有关所选项目的详细信息&#xff0c;在项目创建完成后&#xff0c;初始化项目是一项非常重要的工作&#xff0c;涉及需要设置的内容包括项目名&#xff0c;ID,责任人&#xff0c;日历&#xff0c;预算&#xff0c;资金&#xff0c;分类码等等&…...

CSS 中BFC是什么?

在CSS中&#xff0c;BFC&#xff08;块级格式化上下文&#xff09;是一个重要的概念&#xff0c;它对于理解和解决布局中的一些问题非常有帮助。本文将深入探讨BFC是什么&#xff0c;以及如何使用代码来详细解释BFC的概念和应用。 引言 在Web开发中&#xff0c;页面布局是一个…...

uniapp的几种跳转方式

1、UniApp是一个跨平台的应用开发框架&#xff0c;可以用于开发同时支持多个平台&#xff08;如iOS、Android、H5等&#xff09;的应用程序。在UniApp中&#xff0c;有多种方式可以实现页面之间的跳转。以下是其中一些常用的跳转方式&#xff1a; 页面跳转&#xff08;navigat…...

【MySQL】初识数据库

目录 1.概念2.基本使用显示当前的数据库列表创建数据库使用数据库创建表向表中插入数据查看创建的表中的数据 3.SQL的分类4.存储引擎 1.概念 MySQL本质是基于C(mysql)S(mysqld)模式的一种网络服务。 mysqld&#xff1a;它是数据库的服务器端&#xff08;这是一个守护进程&…...

计算机网络(一)

一、什么是计算机网络、计算机协议&#xff1f; 计算机网络就是由计算机作为收发端&#xff0c;不同计算机相互连接的网络&#xff0c;包括互联网&#xff08;Internet&#xff09;&#xff0c;公司或者家用网络&#xff08;intranet&#xff09;等等&#xff1b;其中Internet…...

英语经典名句,柯桥成人英语培训

.Every man has his price.--“天生我材必有用必有用”. Well begun is half done.--“好的开端是成功的一半”. Good wine needs no bush.--“好酒不怕巷子深”. Little stone fell great oaks.--“滴水穿石” Man is good but old is hot.--"人是实的好&#xff0c;…...

@JSONField或@JsonProperty注解使用

一、需求 使用JSONField或JsonProperty注解&#xff0c;来解决bean与json字段不一致问题&#xff0c;或者字段定义不符合前端所需要的标准&#xff0c;最近在项目中发现实体类属性中&#xff0c;同时使用了JSONField和JsonProperty注解&#xff0c;用于重新声明属性key。有时候…...

高效简洁的文档翻译网站

一款简单而强大的文档翻译网站 一款文字/文件翻译的网站,支持多个领域的翻译&#xff0c;支持常见的语言翻译(韩/日/法/英/俄/德…),最大百分比的保持原文排版(及个别除外基本100%还原)。 新用户注册就有100页的免费额度&#xff0c;每月系统还会随机赠送翻译额度&#xff0c;…...

SpringBoot自动装配定义先后顺序失效原因极其解析

SpringBoot自动装配定义先后顺序失效原因极其解析 1、场景分析1.1、问题总结 2、使用AutoConfigureBefore、AutoConfigureAfter和AutoConfigureOrder注解指定加载顺序2.2、AutoConfigureXX注解失效原因总结 3、使用静态内部装配类提升加载顺序4、bean加载顺序规则 1、场景分析 …...

API 集成测试工具Hitchhiker 0.1.1 正式发布

Hitchhiker 是一款开源的 Restful Api 集成测试工具&#xff0c;你可以在轻松部署到本地&#xff0c;和你的 team 成员一起管理 Api。 能做什么 * Team 协作开发 Api * Api 历史修改记录及支持 diff 展示 * 支持多环境变量及运行时变量 * 支持 Schedule 及批量 run * 不同…...

idea无法下载源码-Cannot download sources

问题&#xff1a; 解决方案&#xff1a;...

docker搭建mysql主从复制

1. 基础环境 环境 名称描述CentOS 7.6Linux操作系统版本docker 20.10.5docker版本mysql 8.0.29mysql镜像版本 节点 节点名称读写/主从地址端口master读节点/主节点192.168.1.6:3306slave1写节点/从节点192.168.1.6:3307slave2写节点/从节点192.168.1.6:3308 2. 主节点 使…...

在MacBook上实现免费的PDF文件编辑

之前我想对PDF文件进行简单处理&#xff08;比如删页面、添空白页、调整页面顺序&#xff09;&#xff0c;要么是开wps会员【花钱贵】&#xff0c;下载&#xff08;盗版&#xff09;Adobe Acrobat【macOS不好下载】&#xff0c;要么用福昕阅览器登陆学生账号&#xff08;学校买…...

QT第2课-GUI程序实例分析

GUI程序开发概述 不同的操作系统GUI开发原理相同不同的操作系统GUI SDK 不同 GUI 程序开发原理 GUI程序在运行时会创建一个消息队列系统内核将用户的键盘鼠标操作翻译成对应的程序消息程序在运行过程中需要实时处理队列中的消息当队列中没有消息时&#xff0c;程序将处于停滞…...

利用ngx_stream_return_module构建简易 TCP/UDP 响应网关

一、模块概述 ngx_stream_return_module 提供了一个极简的指令&#xff1a; return <value>;在收到客户端连接后&#xff0c;立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量&#xff08;如 $time_iso8601、$remote_addr 等&#xff09;&a…...

css实现圆环展示百分比,根据值动态展示所占比例

代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

解决Ubuntu22.04 VMware失败的问题 ubuntu入门之二十八

现象1 打开VMware失败 Ubuntu升级之后打开VMware上报需要安装vmmon和vmnet&#xff0c;点击确认后如下提示 最终上报fail 解决方法 内核升级导致&#xff0c;需要在新内核下重新下载编译安装 查看版本 $ vmware -v VMware Workstation 17.5.1 build-23298084$ lsb_release…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能

1. 开发环境准备 ​​安装DevEco Studio 3.1​​&#xff1a; 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK ​​项目配置​​&#xff1a; // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...