急】hive,insert从parquet表插入到textfile(cvs)表时,字段内容为NULL

我有两张表,字段数量名字相同
A表示parquet表
B表是textfile表,放cvs数据的按tab分割

现在A表有10条数据,B表无数据,我想使用insert overwrite A到B,然后insert完毕以后,
使用hive查询B表数据,发现某些列成为了null(目前发现仅内容为数字的会是null,但为null字段当时设置的类型是String,只是内容填的数字而已)

简单叙述
我把parquet表的数据insert overwrite到textfile(或者反过来操作),使用hive查询的时候都会出现部分字段变为null的情况,但同时使用impala查询发现是有内容的,请问这是怎么回事?我猜是parquet转textfile或者textfile转parquet时就是会有问题,

所以请问怎么解决,因为目前需求需要从一张新表转到老表,老表是textfile类型的,新表是parquet
我们程序使用的java(不过上述操作我都是直接用命令行测试的)

0

2个回答

先确认下 A表和B表的定义。
show create table A;
show create table B;
看下两个表的定义是否完全一致,另外看下 insert 语句是否按照 表的各个字段的顺序 引用各个字段。
然后看下B表的 原始数据文件(通过 location 地址),下载到本地查看,那些为null的字段,在数据文件中是什么情况。希望可以帮到你。

-1

方便把图贴出来吗?看图更能找到问题

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
【Hive十四】Hive读写Parquet格式的数据
 1. 原始数据 hive> select * from word; OK 1 MSN 10 QQ 100 Gtalk 1000 Skype      2. 创建保存为parquet格式的数据表   hive> CREATE TABLE parquet_table(age INT, name STRING)STORED AS PARQUET; ...
在spark中将数据插入到hive、parquet表中及用户定义函数
在spark中将数据插入到hive表      步骤:            1. 创建数据集的sparkdataFrame                这里使用的是TmpDF = spark.createDataFrame(RDD, schema)这种方法创建的            2. 将数据集的dataFrame格式映射到临时表                使用createOrRepl...
hive 文件存储parquet格式, sparkSql解析部分字段为null
hive 版本2.1.0, hdfs 上同一份数据 (1) 用hive 建表, 部分字段hive 读取有值, sparksql读取值为null CREATE EXTERNAL TABLE business_log.rule_business_log2 (                            id bigint,                             bu
Hive文件存储格式(TEXTFILE 、ORC、PARQUET三者的存储格式的压缩对比和查询速度对比)
综述: HIve的文件存储格式有四种:TEXTFILE 、SEQUENCEFILE、ORC、PARQUET,前面两种是行式存储,后面两种是列式存储;所谓的存储格式就是在Hive建表的时候指定的将表中的数据按照什么样子的存储方式,如果指定了A方式,那么在向表中插入数据的时候,将会使用该方式向HDFS中添加相应的数据类型。 如果为textfile的文件格式,直接load就OK,不需要走MapRed...
hive导入数据成功,但是查询显示NULL
hive导入数据成功,但是查询结果为NULL,且未报错这是因为创建表格时没有对导入的数据格式没有处理,比如每行数据以tab键隔开,以换行键结尾,就要以如下语句创建表格:CREATE TABLE users(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' LINES TERMINATED BY '\n' STORE...
Hive分区表中 添加新字段,值为NULL 问题解决
Hive分区表中 添加字段,值为NULL 问题解决
使用Hive SQL插入动态分区的Parquet表OOM异常分析
转载自微信公众号Hadoop实操:https://cloud.tencent.com/developer/article/1079007 使用Hive SQL插入动态分区的Parquet表OOM异常分析 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右...
[Hive]Hive使用指南七 空值与NULL
1. NULL(null)值创建一个临时表tmp_null_empty_test,并插入一些NULL数据:CREATE TABLE IF NOT EXISTS tmp_null_empty_test( uid string ) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' STORED AS T
Hive分区表新增字段为null的bug及解决方法
Hive分区表新增字段为null的bug及解决方法
Hive分区表新增字段数据显示为NULL
hive的分区表在新增字段后,新增字段的数据显示NULL。hive分区表新增字段,新分区表字段能够显示,老的分区表字段无法显示,在hdfs上显示正常。 测试具体情况: 1、创建一个测试表 2、插入一条数据 insert into table cyx_test partition(dt='20180101') values('0101','java','shenz...
加载本地文件到Hive表出现NULL列的解决办法
举例说明, 现有本地文件,每行两列,内容如下: 0000000026310400        F 0000000029858520        F 0000000042620180        F 0000000044783820        F 0000000045771260        F 创建一个Hive表,使用如下语句: create table if no
Hive文件格式(表STORE AS 的四种类型)
hive文件存储格式包括以下几类: 1、TEXTFILE 2、SEQUENCEFILE 3、RCFILE 4、ORCFILE(0.11以后出现) 其中TEXTFILE为默认格式,建表时不指定默认为这个格式,导入数据时会直接把数据文件拷贝到hdfs上不进行处理; SEQUENCEFILE,RCFILE,ORCFILE格式的表不能直接从本地文件导入数据,数据要先导入到textfile格式的
hive第一个字段为null
在hive中创建表后,将准备好的数据导入到该表中,如果第一个字段是int类型时,你通过select * from tablename;查询该表时候,第一个字段返回的是null的. 解决方法:如果你出现的问题和上面的一样,很可能是你定义表的第一个字段是int类型,将其该成string类型后就可以了。 先给出解决方法,具体原因有待分析。...
parquet和textfile存储对比
有人说parquet是列存储,textfile 是行存储(类似关系型数据库oracle表),那么我半信半疑,那么我们试试看。我有个毛病,听别人说,没有底气,凡事都想自己尝试,拿事实说话。1.先试试parquet表create TABLE prestat.stat_nps_user_week_test ( timevalue TIMESTAMP, imsi STRING, msis...
impala创建parquet文件的外表及两个容易忽略的陷阱
impala外表的创建方法impala创建外表有两种方式,一种由impala-shell 进行创建,一种通过hive shell进行创建。impala-shell 进行创建准备工作连接impala-shell在文本中书写impala的创建表语句例子create table stats_xxxx_day( ID STRING, STATDATE STRING ) partition by(p_sta...
Hive使用ORC格式存储离线表
[size=medium] 在大数据时代,列式存储变得越来越流行了,当然并不是说行式存储就没落了,只是针对的场景不同,行式存储的代表就是我们大多数时候经常用的数据库,比较适合数据量小,字段数目少,查询性能高的场景,列式存储主要针对大多数互联网公司中的业务字段数目多,数据量规模大,离线分析多的场景,这时候避免大量无用IO扫描,往往提高离线数据分析的性能,而且列式存储具有更高的压缩比,能够节省一定的...
hive 查询结果转为parquet格式 存入hdfs中
hive 查询结果转为parquet格式 存入hdfs中 , 步骤: 1.首先根据我们hive查询结果 ,新建一张表 , 2.然后,对表结构做修改 ,更改表指定存储格式为parquet  , 3.然后删除之前创建的那装表, 然后新建这张指定存储格式的表, 4.之后把结果插入这个表中。 1、 create table table_parquet as  select j30.
Hdfs 导入Hive,时间相关的字段 导入后为NULL
CREATE TABLE OFFER_${day_id} ( OFFER_ID BIGINT, ATOM_ACTION_ID BIGINT, PARTY_ID BIGINT, OFFER_SPEC_ID BIGINT, OFFER_NBR STRING, AREA_ID INT, MKT_ACTIVITY_ID BIGINT, START_DT STRING, END_
将Hive数据库存储格式转换为orc
Hive的存储格式 textfilehive的默认存储格式 存储方式:行存储 磁盘开销大 数据解析开销大 压缩的text文件 hive无法进行合并和拆分 SequenceFile二进制文件,以Hive导入数据的几种方式 从本地文件系统中导入 load data local inpath 'customer .data' into table customer; 从HDFS上导入 load da
hive 中,Load data导入多出现一列null或者全部数据都是null
出现一列null原因:导入的文件编码问题,需要设置成utf8,(如果改了编码,还是出现一列null,就把分隔符由/t 改成英文逗号,)     导入的数据全部都是null,原因:createtable时需要指定, row formate delimited fields terminated by ',' Stored as textfile
hive统计parquet表报错
hue执行: SELECT count(*) FROM tt_sales_order; 首先查看表源数据: parquet列式存储格式,所以优先统计某一列: SELECT count(salesorder_id) FROM tt_sales_order;
hive表存储为parquet格式
Hive0.13以后的版本 创建存储格式为parquet的hive表: CREATE TABLE parquet_test ( id int, str string, mp MAP<STRING,STRING>, lst ARRAY<STRING>, strct STRUCT<A:STRING,B:STRING>) PARTITIONED BY...
Hive建表指定TextFile格式,但是hdfs文件仍然是压缩的问题
建表语句如下: create table if not exists t( xxx string, xxx string, xxx string) row format delimited fields terminated by ‘,’ stored as textfile; 查阅资料说textfile是默认不压缩的,但是实际上底层hdfs文件任然是压缩的 如上图 通过添加如下参数可以解决压缩...
我们hive库建表默认是orc格式的,建表必须加 as textfile,否则外部文本数据导不进去,这坑趟过两遍了,妈蛋!
hive -e "create table <database_name>.<table_name>(f1 string) stored as textfile;"
hive——通过外部向表中插入数据问题
最近在使用hive的过程上遇到一个比较坑的问题,当手动向hive中的表插入数据时,若含有中文字符,插入hive表后中文乱码。比如在hive的client中执行如下脚本: INSERT INTO TABLE table_info PARTITION (date_key='2016-11-07') values('成品2库')从hive中查看插入的结果如下图: 同时也尝试了通过使用
扩展:hive插入数据到ES
Hive建表加入hive和es的相关jar包(此例以es5.5.2为例,jar去官网下载)add jar file:///data/xj6500_data/lib/elasticsearch-hadoop-5.5.2.jar;建表语句DROP TABLE IF EXISTS dim_use_year_es ;CREATE EXTERNAL TABLE dim_use_year_es(  datal...
解压parquet格式文件到text
方法一:spark python实现 import sysfrom pyspark import SparkConf, SparkContextfrom pyspark.sql import SQLContextinputpath=sys.argv[1]outputpath=sys.argv[2]sc = SparkContext(appName="Transform Pq to Csv")...
Hive文件格式(RCFILE)
hive文件存储格式包括以下几类: 1、TEXTFILE 2、SEQUENCEFILE 3、RCFILE 4、ORCFILE(0.11以后出现) 其中TEXTFILE为默认格式,建表时不指定默认为这个格式,导入数据时会直接把数据文件拷贝到hdfs上不进行处理; SEQUENCEFILE,RCFILE,ORCFILE格式的表不能直接从本地文件导入数据,数据要先导入
mysql8基础 insert 表中含有自动增长的字段,插入数据时用null或default
       OS : Ubuntu 18.04.1 LTS        DBMS : mysql 8.0.12        blog : blog.csdn.net/shiwanwu  typesetting : Markdown   数据,数据,命根就在数据 ! 操作数据库时,一定要谨慎小心。师...
Spark SQL 读取hive分区表出现分区字段为null的情况
今天在使用Spark SQL 读取hive分区表数据的时候,出现了下面的错误: 由于这个表是数仓维护提供给我使用的,我并不是很清楚表中数据的情况,于是我取查了一下这个表,发现分区字段pk_year,pk_month,pk_day这几个字段确实都存在为默认的情况: 在hive里面表可以创建成分区表,但是当分区字段的值是''" 或者 null时 hive会自动将分区命名为默认分区名称。 ...
日志导入 Impala parquet表 步骤
1、在hue 中的file brower 上新建目录 /user/flume/flume_raw.db/o_onecloud_xxxx 2、选中目录 action -》change permission 修改目录权限  赋予写权限(x 打钩)。 3、建表加分区: CREATE TABLE flume_raw.o_onecloud_xxxx (        stime TIMESTAMP C...
Hive的几种常见压缩格式(ORC,Parquet,Sequencefile,RCfile,Avro)的读写查询性能测试
一.测试背景 工作中想把历史的APP日志结构化到Hive中进行查询,由于数据较大,需要进行压缩,根据Hive官方提供的几种压缩格式分别进行写入,读取,OLAP计算的性能测试,以求找到最好的压缩格式。   二.测试方法概述   数据来源:采用生产上数据抽样,大小为100G。原始日志格式为textfile文件(标准JSON)。 测试平台:公司Ambari测试平台,物理内存100G。 测试...
hive 查询表,返回数据全是null
Hive查询表,返回数据全是NULL 情况1: hive> create table users(id int, name string); hive> load data local inpath '/usr/local/users.txt' into table users; 其中“/usr/local/users.txt”的内容为下面所示,每一行的(id,name)之间使...
Hive通过查询语句向表中插入数据过程中发现的坑
在学习使用Hive的过程中,发现了一些坑,它们或许是Hive提倡的比关系数据库更加自由的体现(同时引来一些问题),或许是一些bug。总而言之,这些都需要使用Hive的开发人员额外注意。本文旨在列举我发现的2个通过查询语句向表中插入数据过程中的问题,希望大家注意。
hive分区表添加字段出现新增字段null的bug
hive分区表添加字段出现新增字段null的bug 对于hive分区表,我们使用alter语句新增字段后(如alter table table_name add columns(age int)),再重写之前已经存在的分区,会出现使用查询语句查出来的新增字段显示null值。 例如:表a ,分区dt,已有分区dt=’a’,由于需求新增了一个字段,然后重新写a 分区数据,写完后使用select发...
Parquet与ORC性能测试报告
本文主要使用Hive引擎对比测试了两种业界较为认可的列式存储格式——ORC和Parquet,并使用Text存储格式做对比,设置了星状模型、扁平式宽表,嵌套式宽表等多种场景进行测试,以供感兴趣的同学参考。
Hive ORC file 数据插入报错
报错:Error: java.io.IOException: java.lang.reflect.InvocationTargetExceptionCaused by: java.lang.reflect.InvocationTargetExceptionCaused by: java.io.IOException: Malformed ORC file hdfs://master.hadoop....
hive导入数据出现NULL
由于很多数据在hadoop平台,当从hadoop平台的数据迁移到hive目录下时,由于hive默认的分隔符是/u0001,为了平滑迁移,需要在创建表格时指定数据的分割符号,语法如下:   create table test(uid string,name string)row format delimited fields terminated by '/t'; 通过这种方式,完成分隔
hive创建表格,简单创建及复杂创建(指定分隔符,存储格式、分区等)
1、hive表格简单创建create table test(id int,name string,tel string)然后show tables 就可以查看到已创建的表格了2、指定分隔符存储格式create table test(id int, name string ,tel string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' L...
hive多表连接带where查询结果插入到新表的优化
在工作中我们经常需要加工表,可能join很多张表然后将最后的结果插入到一个新表里面,如果查询带where语句那么我们可以进行如下优化: 例如有如下伪代码,将查询的结果插入APP_NEW表中: insert overwrite table APP_NEW select a.x1, a.x2, b.x3, b.x4, b.x5, c.x6, c.
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 物联网表价格 java学习表