Hive输出文件的间隔符
1.insert 语法格式为: 基本的插入语法: INSERT OVERWRITE TABLE tablename [PARTITON(partcol1=val1,partclo2=val2)]select_statement FROM from_statement insert overwrite table test_insert select * from test_table; 对多个表进行插入操作: FROM fromstatte INSERT OVERWRITE TABLE tablename1 [PARTITON(partcol1=val1,partclo2=val2)]select_statement1 INSERT OVERWRITE TABLE tablename2 [PARTITON(partcol1=val1,partclo2=val2)]select_statement2 from test_table insert overwrite table test_insert1 select key insert overwrite table test_insert2 select value; insert的时候,from子句即可以放在select 子句后面,也可以放在 insert子句前面。 hive不支持用insert语句一条一条的进行插入操作,也不支持update操作。数据是以load的方式加载到建立好的表中。数据一旦导入就不可以修改。
2.通过查询将数据保存到filesystem INSERT OVERWRITE [LOCAL] DIRECTORY directory SELECT.... FROM ..... 导入数据到本地目录: insert overwrite local directory '/home/zhangxin/hive' select * from test_insert1; 产生的文件会覆盖指定目录中的其他文件,即将目录中已经存在的文件进行删除。 导出数据到HDFS中: insert overwrite directory '/user/zhangxin/export_test' select value from test_table; 同一个查询结果可以同时插入到多个表或者多个目录中: from test_insert1 insert overwrite local directory '/home/zhangxin/hive' select * insert overwrite directory '/user/zhangxin/export_test' select value;
在hive中将结果输出到本地目录下:
hive> INSERT OVERWRITE LOCAL DIRECTORY '/home/hadoop/result' > SELECT * FROM table_name
查看结果的时候,发现各个字段都连接在一起,如下
[hadoop@hadoop-24 result]$ more 000000_0 1331903227197_846612012-04-09 1331903230484_756522012-04-09 1331903233859_134242012-04-09 1331903251469_712512012-04-09 1331903253640_325962012-04-09
后来人工加上了分割符“空格”,从视觉上感觉好多了,但是,在实际运算的时候,发现输出文件中实际上已经有分割符了,只是视觉上看不出来罢了。
但是,分隔符和各自的文件/系统的编码设置有关系。在我们的系统上,间隔符为'\x01’,直接用split(‘\x01’)就可以了。
No matter what the table format, INSERT OVERWRITE LOCAL DIRECTORY will always use ctrl-A delimiters ('\001' )
所以 你可以根据‘\001’来分隔 目前似乎还不支持类似于: INSERT OVERWRITE LOCAL DIRECTORY '/tmp/reg_81' ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' SELECT * FROM testTable ;
Hive输出文件的间隔符相关推荐
- Hive小文件问题:如何产生、造成影响、解放办法
一.小文件是如何产生的 1.动态分区插入数据,产生大量的小文件,从而导致map数量剧增. 2.reduce数量越多,小文件也越多(reduce的个数和输出文件是对应的). 3.数据源本身就包含大量的小 ...
- SparkSql 控制输出文件数量且大小均匀(distribute by rand())
@羲凡--只为了更好的活着 SparkSql 控制输出文件数量且大小均匀(distribute by rand()) Q:Spark如何控制文件你输出数量? A:这个简单,用 coalesce或者re ...
- hive小文件处理方法
方法一 hive方法处理 set hive.merge.mapfiles=true; -- map only job 结束是合并小文件 set hive.merge.mapredfiles=true; ...
- hive小文件过多问题解决方法
小文件产生原因 hive 中的小文件肯定是向 hive 表中导入数据时产生,所以先看下向 hive 中导入数据的几种方式 直接向表中插入数据 insert into table A values (1 ...
- hive 小文件过多解决方案
目录 一.小文件产生原因 二.小文件过多产生的影响 三.怎么解决小文件过多 1. 使用 hive 自带的 concatenate 命令,自动合并小文件 2. 调整参数减少Map数量 3. 减少Redu ...
- hive小文件过多问题解决
起因 数据中台当前有一张流水类表,存在3200个分区,230w个数据文件,150亿条数据,导致该表查询起来及其麻烦,更令人糟心的是,业务人员不懂查询方式,经常有人使用select *的方式查询该表,导 ...
- 10分钟掌握Hive小文件过多如何解决?
写在前面 在做数据仓库的时候,使用动态分区会产生许多的小文件,给计算资源造成较大的影响,所以本文针对小文件如何规避计算资源浪费作了一些设计 为什么要处理小文件: 1.从Hive在进行mapreduce ...
- 有效解决hive小文件过多问题
小文件产生原因 hive 中的小文件肯定是向 hive 表中导入数据时产生,所以先看下向 hive 中导入数据的几种方式 直接向表中插入数据 insert into table A values (1 ...
- 主题:CS0016: 未能写入输出文件“c:#92;WINDOWS#92;Microsoft.NET#92;***.dll”错误处理...
刚装完.NET环境,在编译时出现了如下错误: 编译器错误信息:CS0016: 未能写入输出文件"c:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\ ...
最新文章
- 动画库NineOldAndroids
- python好学嘛-Python对于没有计算机基础知识的人来说,好学吗?
- Python: generator, yield, yield from 详解
- Nginx+Tomcat集群与负载均衡
- android 开发 矩形截屏插件,Android 上如何实现矩形区域截屏
- C语言及程序设计提高例程-21 首尝排序——冒个泡
- python办公室应用_Python干货:玩转办公室软件(一)PP还能这样玩!
- python写透视挂_python opencv 透视变换
- www.12306.cn是安抚群众心灵的吧?
- MATLAB注释快捷键、绘图选项
- spark 部署方式
- mysql休假管理系统_课内资源 - 基于JSP和MYSQL数据库实现的请假管理系统
- 全志F1c100s主线linux入坑记录 (4)GT911触摸移植
- 数据治理——主数据项目实施
- QT框架下的OpenGL使用---实战篇---鼠标选取点对象
- 带宽、流量限制软件之Netlimiter Pro中文使用教程
- 使用conda管理python环境
- 【Faster R-CNN论文精度系列】从Faster R-CNN源码中,我们“学习”到了什么?
- bzoj 2959: 长跑(LCT+并查集)
- leetcode:Permutations1+2nbsp;+nbsp;Rotat…
热门文章
- Finder教程|如何自定义访达工具栏?
- win10 系统不显示机械硬盘(装在光驱位置)
- Springboot宠物医院系统
- 鸢尾花分类算法——机器学习笔记
- 今日头条启动很快,你觉得可能是做了哪些优化?
- .NET周报【11月第4期 2022-11-30】
- nginx+uwsgi+django1.9+mysql+python2.7部署到CentOS6.5
- 分享:制作属于自己的O'REILLY“动物书”封面
- Vue + Element UI 实现权限管理系统 前端篇(六):更换皮肤主题
- AI——三(路径、画笔)