hive 指定字段插入数据_Hive 表之间数据处理,Int 类型字段部分字段出现 NULL情况...
背景
hive 中有一张待处理的分区表,存储的方式是parquet,处理之后的目标表是一张非分区的外部表,并且分隔方式为 “,”。
问题
部分记录的 int 类型字段 出现 null 情况
表结构
原表结构
CREATE EXTERNAL TABLE
adm_v1.adm_cms_flow_daily
(url
string,title
string,courseeduid
string,courseeduname
string,catalogid
string,catalogname
string,innercode
string,adduser
string,addtime
string,original
string,pv
string,uv
string,downuv
string,downpv
string,platform
string,areaid
string ) PARTITIONED BY (dn
string,dt
string) stored as parquet TBLPROPERTIES ('parquet.compression'='gzip');
目标表结构
CREATE EXTERNAL TABLE
tmp_v1.tmp_zdh_test_biz_cms_flow_tmp_v4
(dt
string,dn
BIGINT,addtime
BIGINT ,adduser
string,innercode
string,url
string,title
string,original
BIGINT,timestamp
TIMESTAMP,pv
BIGINT,uv
BIGINT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ;
处理语句
insert overwrite table tmp_v1.tmp_zdh_test_biz_cms_flow_tmp_v4 select from_unixtime(unix_timestamp(dt,'yyyyMMdd'),'yyyy-MM-dd') as dt,case dn when 'acc' then 1 when 'jianshe' then 2 when 'med' then 3 else 4 end as dn1,addtime,adduser,innercode,url,title,cast(original as bigint ),from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss'),cast(pv as bigint),cast(uv as bigint) from adm_v1.adm_cms_flow_daily where dn='acc' and dt='20201110' and addtime='20201110' ;
问题展示
原表中的original 字段 存在 1 的值
导入到tmp_v1.tmp_zdh_test_biz_cms_flow_tmp_v4表之后 original 字段变为null 值
问题分析/定位
将有问题的记录取出,观察数据,要特别注意一下original 的前一个字段是title,title 中可能存在逗号影响目标表的存储。
查询原表中记录
查询目标中记录
从上面两个查询结果对比可以看出,title 字段在逗号的位置被截断了。这样问题就找到了,替换目标表的分隔符为 u0001。 重新观察
CREATE EXTERNAL TABLE
tmp_v1.tmp_zdh_test_biz_cms_flow_tmp_v8
(dt
string,dn
BIGINT,addtime
BIGINT ,adduser
string,innercode
string,url
string,title
string,original
BIGINT,pv
BIGINT,uv
BIGINT ) ROW FORMAT DELIMITED FIELDS TERMINATED BY 'u0001' ;
问题解决。
引出的问题
最后一列跑哪去了?
测试:最后两列是pv、uv,从下图看出来,最后一列被舍弃了。
本文由博客群发一文多发等运营工具平台 OpenWrite 发布
hive 指定字段插入数据_Hive 表之间数据处理,Int 类型字段部分字段出现 NULL情况...相关推荐
- mysql 字段写入_MySQL为数据表的指定字段插入数据
username not null 没有默认值/有默认值 insert不插入username字段 均不报错 2014年07月23日21:05 百科369 MySQL为数据表的指定字段插入数据 ...
- 在PPT中插入数据透视表(数据透视图)
在PPT制作过程中,有时需要插入EXCEL中常用的数据透视表(数据透视图) 下面说一下方法:(以office2007为例) 首先,在EXCEL中选中要进行数据分析的数据区域,并定义区域名称.这里我们取 ...
- Excel插入数据透视表,实现合并同类项(office2007)
要实现对下表的同类项进行合并(office2007) 新打开一个Excel点击,"插入"->数据透视表 在选择表中,选择需要进行合并的数据 在右侧选择显示的信息
- Excel 数据透视表教程大全之 08 创建计算字段,将销售额除以数量实现计算每种产品单价(教程含数据)
标准数据透视表具有创建计算字段的简单功能.您可以将计算字段视为源数据中的虚拟列.计算字段将出现在字段列表窗口中,但不会占用源数据中的空间.在所示示例中,已使用将销售额除以数量的公式创建了一个名为&qu ...
- excel透视表无添加字段_为内部字段添加数据透视表小计
excel透视表无添加字段 How was your weekend weather? We had a mini-blizzard yesterday, that covered the backy ...
- mysql longblob 读取_MySQL数据库之Mysql的longblob字段插入数据问题解决
本文主要向大家介绍了MySQL数据库之Mysql的longblob字段插入数据问题解决 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 在使用mysql的过程中,有个问题就是my ...
- 数据透视表(合并同类型数据求和)
1.选中需要分析的数据列 2.插入-数据透视表 3.名称想拖入行.求和项如值,下拉倒三角设置值字段为求和 4.结果如图
- hive 指定字段插入数据_为hive增加列存储
为hive增加列存储应该算是我在hive上进行的第一个比较大的尝试. 目前已经实现对列表的INSERT操作. 在这一周时间里,我对hive的理解更加的深入. 废话不说,下面开始介绍下hive的列存储功 ...
- hive 分区表select全部数据_Hive分区表实战
1. Hive分区表Partition和Bucket,为了提升查询效率,前者是粗粒度的划分,后者是细粒度的划分. 建表语句中使用partitioned by指定分区字段 分区表有静态分区和动态分区两种 ...
最新文章
- highcharts加载数据库数据(java版)
- excel2010设置列宽为像素_怎么改变Excel中列宽的像素
- C#显示百度地图API
- 打包无法识别lombok
- 给出TREE_INSERT过程的非递归版本(算法导论第三版12.3-1)
- android 保活方案_Android 后台保活手段总结 (上篇)
- C#LeetCode刷题之#532-数组中的K-diff数对(K-diff Pairs in an Array)
- pattern in java_Java里的生产者-消费者模型(Producer and Consumer Pattern in Java)
- Eclipse添加git插件上传项目到github
- java批量导入和批量删除_MyBatis 实现批量插入和删除中双层循环的写法案例
- 爬虫python编程与cvi编程_编程小白如何写爬虫程序
- 易语言教你制作onoQQ机器人
- android 免 root修改位置打卡
- npoi 删除多行 操作excel_使用NPOI导出Excel ICell调用过剩 内存溢出
- SpringSecurity实战(三)-整合SpringSession-Redis
- swagger工具编写接口文档
- 通信领域相关的英语缩略语
- 复旦大学2018--2019学年第二学期(18级)高等代数II期末考试第六大题解答
- Windows游戏开发学习一 —— WinMain函数
- java 浮雕效果_android 图像处理(黑白,模糊,浮雕,圆角,镜像,底片,油画,灰白,加旧,哈哈镜,放大镜)...
热门文章
- 1.1 Java流是什么?输入/输出流又是什么?
- ACM入门之【线段树习题】
- 142. 前缀统计【trie】
- 2021算法竞赛入门班第八节课【数学】习题
- 1116 c语言竞赛 (20 分)【难度: 一般 / 知识点: 模拟】
- 1070 Mooncake (25 分)【难度: 简单 / 知识点: 贪心】
- 数据查询语言(DQL)
- 电脑怎么连蓝牙耳机_魅族蓝牙耳机POP2说明书 魅族蓝牙耳机POP2怎么样
- 牛X,这次Windows太给力了!!!
- springmvc教程--RESTful支持详解