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

hive:导出数据记录中null被替换为\n的解决方案

在hive中,一般情况下通过

1 use my_hive_db;
2 set hive.merge.mapfiles=true;
3 set hive.merge.mapredfiles=true;
4 set hive.merge.size.per.task= 1000000000;
5 set hive.merge.smallfiles.avgsize= 1000000000;
6 insert overwrite directory '/user/myuser/temp/scenemapbuild/' row format delimited fields terminated by ',' select * from scenemapbuild;

导出文件时,会遇本来表中本来字段值为null的字段导出时为\n。

解决方案:

1 insert overwrite directory '/data/files/map_table_4'
2 ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
3 WITH SERDEPROPERTIES (
4 'field.delim'=',',
5 'serialization.format'= '',
6 'serialization.null.format'=''  
7 ) STORED AS TEXTFILE
8 select foo, null, bar from map_table;

备注:

1)设置 alter table name SET SERDEPROPERTIES('serialization.null.format' = '\N'); 

则:底层数据保存的是'\N',通过查询显示的是'NULL'
这时如果查询为空值的字段可通过 语句:a is null 或者 a='\\N'

2)设置 alter tablename SET SERDEPROPERTIES('serialization.null.format' = 'NULL');
则:底层数据保存的是'NULL',通过查询显示的是'NULL'
这时如果查询为空值的字段可通过 语句:a is null 或者 a='NULL'

3)设置 alter tablename SET SERDEPROPERTIES('serialization.null.format' = '');
则:底层数据保存的是'',通过查询显示的是'NULL'
'' 与 length(xx)=0
'' 表示的是字段不为null且为空字符串,此时用 a is null 是无法查询这种值的,必须通过 a='' 或者 length(a)=0 查询。

 

相关文章:

  • Python python-nmap多线程端口扫描脚本(转载)
  • 通过curl得到http各阶段的响应时间
  • 深入浅出理解分类(Category)和类扩展(Extension)
  • 高阶函数
  • Javascript调试命令——你只会Console.log() ?
  • oracle impdp将导出用户的所有对象导入至另一个用户下,生成的触发器语句问题处理...
  • windows安装 pip
  • 一起学JAVA之《spring boot》03 - 开始spring boot基本配置及项目结构(转)
  • centos5中添加163yum源
  • js便签笔记(7)——style、currentStyle、getComputedStyle区别介绍【转载】
  • 都说要用人工智能改变医疗行业,不过……医生怎么看?
  • SpingCloudBus整合RabbitMQ
  • 10分钟了解Android项目构建流程
  • 条件变量使用总结
  • JsonPath —— JSON 解析神器
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • cookie和session
  • ECMAScript6(0):ES6简明参考手册
  • ERLANG 网工修炼笔记 ---- UDP
  • Java 内存分配及垃圾回收机制初探
  • Laravel核心解读--Facades
  • Linux gpio口使用方法
  • miaov-React 最佳入门
  • MySQL几个简单SQL的优化
  • passportjs 源码分析
  • vue-loader 源码解析系列之 selector
  • Vue实战(四)登录/注册页的实现
  • WinRAR存在严重的安全漏洞影响5亿用户
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 成为一名优秀的Developer的书单
  • 初识 beanstalkd
  • 代理模式
  • 对超线程几个不同角度的解释
  • 什么是Javascript函数节流?
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (1)虚拟机的安装与使用,linux系统安装
  • (windows2012共享文件夹和防火墙设置
  • (八十八)VFL语言初步 - 实现布局
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (二开)Flink 修改源码拓展 SQL 语法
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (三十五)大数据实战——Superset可视化平台搭建
  • (一)基于IDEA的JAVA基础12
  • (正则)提取页面里的img标签
  • (轉貼) 蒼井そら挑戰筋肉擂台 (Misc)
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .net 7 上传文件踩坑
  • .NET Project Open Day(2011.11.13)
  • .NET Standard 的管理策略
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • /bin/rm: 参数列表过长"的解决办法