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

无锡响应式网站制作桥东区住房和建设局网站

无锡响应式网站制作,桥东区住房和建设局网站,个人网站如何建,哪个公司做网站专业1、背景#xff1a; 后端日志采集完成#xff0c;清洗入hive表的过程中#xff0c;发现字段之间的单一字符的分割符号已经不能满足列分割需求#xff0c;因为字段值本身可能包含分隔符。所以列分隔符使用多个字符列分隔符迫在眉睫。 hive在建表时#xff0c;通常使用ROW … 1、背景 后端日志采集完成清洗入hive表的过程中发现字段之间的单一字符的分割符号已经不能满足列分割需求因为字段值本身可能包含分隔符。所以列分隔符使用多个字符列分隔符迫在眉睫。 hive在建表时通常使用ROW FORMAT DELIMITEDFIELDS TERMINATED BY |#  来限定数据中各个字段的分隔符这种方式只支持单个分隔符即实际只会按照|进行分割 默认情况下Hive对于分隔符只支持单字符不过Hive自带一个工具jar包这个包支持正则和多字符方式定义分隔符。 hive从0.14版本以后支持MultiDelimitSerDe可以比较优雅多解决多分隔符问题。 ROW FORMAT SERDE org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe WITH SERDEPROPERTIES (field.delim|#$) 2、官方对列支持多个字符的分隔符调研  参考MultiDelimitSerDe - Apache Hive - Apache Software Foundation Introduction: Introduced in HIVE-5871, MultiDelimitSerDe allows user to specify multiple-character string as the field delimiter when creating a table. Version: Hive 0.14.0 and later. Hive SQL Syntax: You can use MultiDelimitSerDe in a create table statement like this: CREATE TABLE test (id string,hivearray arraybinary,hivemap mapstring,int) ROW FORMAT SERDE org.apache.hadoop.hive.serde2.MultiDelimitSerDe WITH SERDEPROPERTIES (field.delim[,],collection.delim:,mapkey.delim); where field.delim is the field delimiter, collection.delim and mapkey.delim is the delimiter for collection items and key value pairs, respectively.  HIVE-20619 moved MultiDelimitSerDe to hive.serde2 in release 4.0.0, so user wont have to install hive-contrib JAR into the HiveServer2 auxiliary directory. Limitations: Among the delimiters, field.delim is mandatory and can be of multiple characters, while collection.delim and mapkey.delim is optional and only support single character.Nested complex type is not supported, e.g. an ArrayArray.To use MultiDelimitSerDe prior to Hive release 4.0.0, you have to add the hive-contrib jar to the class path, e.g. with the add jar command. 3、小试牛刀报错 建表时直接使用  ROW FORMAT SERDE org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe WITH SERDEPROPERTIES (field.delim|#$) 执行查询报错Class org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe not found 根据网上的方案进入hive执行(jar包路径根据自己环境路径对应修改) add jar /usr/hdp/3.1.5.0-152/hive/lib/hive-contrib.jarCREATE EXTERNAL TABLE table_tset( id string, name string, year string) PARTITIONED BY ( year string) ROW FORMAT SERDE org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe WITH SERDEPROPERTIES (field.delim|#$) LOCATION hdfs://CMBHHA/apps/hive/datahouse/test/table_tset 4、几经搜索问题终于解决附上完整示例 4.1、找到和hive版本对应的hive-contrib包下载jar上传到hdfs上 org/apache/hive/hive-contrib所有版本Jar文件及下载 -时代Java hive-contrib包下载链接 4.2、以三个等号作为列分隔符 构建hive表的完整demo add jar hdfs://team/work/libs/xxx/hive-contrib-2.0.1.jar;drop table if exists mb_tmp.yz_1013; create table if not exists mb_tmp.yz_1013( test_id int, work_place string, other string ) partitioned by(dt string) ROW FORMAT SERDE org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe WITH SERDEPROPERTIES (field.delim)load data local inpath /data/home/xxxx/client/ct_data_1010.txt overwrite into table mb_tmp.yz_1013 partition(dt2022-10-10); 其中 以三个等号分割进行作为列分割的数据如下 [workxxxx client]$ cat ct_data_1010.txt 10011beijingchushi 10012tianjinchangchun 10013zhengzhousiji 100014zhangdajob 4.3、结果验证 hive desc mb_tmp.yz_1013; OK test_id int from deserializer work_place string from deserializer other string from deserializer dt string # Partition Information # col_name data_type comment dt string Time taken: 0.332 seconds, Fetched: 9 row(s)hive set hive.cli.print.headertrue;hive select * from mb_tmp.yz_1013 limit 100; OK yz_1013.test_id yz_1013.work_place yz_1013.other yz_1013.dt 10011 beijing chushi 2022-10-10 10012 tianjin changchun 2022-10-10 10013 zhengzhou siji 2022-10-10 100014 zhangda job 2022-10-10 Time taken: 0.51 seconds, Fetched: 4 row(s) hive select other,****,dt,work_place,test_id from mb_tmp.yz_1013 limit 100; OK other c1 dt work_place test_id chushi **** 2022-10-10 beijing 10011 changchun **** 2022-10-10 tianjin 10012 siji **** 2022-10-10 zhengzhou 10013 job **** 2022-10-10 zhangda 100014 Time taken: 0.356 seconds, Fetched: 4 row(s)5、参考 1、Hive多字符分隔符支持https://baijiahao.baidu.com/s?id1617938645018071295wfrspiderforpc 2、Hive在0.14及以后版本支持字段的多分隔符官方文档https://cwiki.apache.org/confluence/display/Hive/MultiDelimitSerDe 3、Hive中的自定义分隔符(包含Hadoop和Hive详细安装) https://blog.csdn.net/github_39577257/article/details/89020980 6、Hive 自带的多字符分割使用demo2 默认情况下Hive对于分隔符只支持单字符不过Hive自带一个工具jar包这个包支持正则和多字符方式定义分隔符。 1. 查询hive自带的工具jar包位置 find / -name hive-contrib-*.jar2. 将上面搜索到的jar包配置到配置hive-site.xml文件中 property   namehive.aux.jars.path/name   valuefile:///opt/apache-hive-1.2.2-bin/lib/hive-contrib-1.2.2.jar/value   descriptionAdded by tiger.zeng on 20120202.These JAR file are available to all users for all jobs/description /property上面配置之后可以不用重启Hive服务只需要重新进入Hive CLI就可生效且是永久的。也可以配置为临时的就是在进入Hive CLI后临时加载这个jar包执行如下 hive add jar file:///opt/apache-hive-1.2.2-bin/lib/hive-contrib-1.2.2.jar3. 使用 准备如下数据分隔符为 |#| 3324|#|003|#|20190816 09:16:18|#|0.00|#|2017-11-13 12:00:00 3330|#|009|#|20190817 15:21:03|#|1234.56|#|2017-11-14 12:01:00 建表时如下声明与定义如下并加载数据查询数据 drop table if exists split_test; CREATE  TABLE  split_test( id   INT COMMENT 借阅查询ID, number   STRING COMMENT 流水号, date   STRING COMMENT 查询返回日期, loanamount   DOUBLE COMMENT 借款金额范围, createtime   TIMESTAMP COMMENT 创建时间 )ROW FORMAT SERDE org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe WITH SERDEPROPERTIES (field.delim|#|) STORED AS TEXTFILE; --加载数据 LOAD DATA LOCAL INPATH /root/split_test.txt  OVERWRITE INTO TABLE split_test;   查询结果如下 --查询数据 hive select * from split_test; OK 3324    003     20190816 09:16:18       0.0     2017-11-13 12:00:00 3330    009     20190817 15:21:03       1234.56 2017-11-14 12:01:00 Time taken: 0.11 seconds, Fetched: 2 row(s)   7、Hive 自定义分隔符例子 自定义部分使用 Java 编写使用Idea新建一个 Maven项目。 https://blog.csdn.net/github_39577257/article/details/89020980 8、hive特殊分隔符不可见的分隔符 枚举 1.hive默认字段分隔符^A使用vim文本编辑显示常用ASCII八进制 \001 或者UNICODE编码十六进制 \u0001 进行设置通过notepad打开显示为SOH 2.hive特殊分隔符^B使用vim文本编辑显示常用ASCII八进制 \002 或者UNICODE编码十六进制 \u0002 进行设置通过notepad打开显示为STX 3.hive特殊分隔符^C使用vim文本编辑显示常用ASCII八进制 \003 或者UNICODE编码十六进制 \u0003 进行设置通过notepad打开显示为ETX· 此外不同编程语音使用hive中\u0001、\0001、\0010、\u0010等分隔符切割需要不同写法 以‘\u0010’为例 hive sql使用split函数时如果字段内使用的是特殊分隔符需要用split(xxx,‘\u0010’)才能正常切割。 如果是使用java写mr代码那么需要使用的是\0010 ​ 9、hive分隔符_HIVE-默认分隔符的linux系统的特殊字符查看输入和修改 hive表分隔符修改实操(兼容sqoop)_hive修改分隔符-CSDN博客 #修改分隔符为逗号 , ALTER TABLE table_name SET SERDEPROPERTIES (field.delim , , serialization.format,); #修改分隔符为\001,在linux的vim中显示为^A,是hive默认的分隔符 ALTER TABLE table_name SET SERDEPROPERTIES (field.delim \001 , serialization.format\001); #修改分隔符为制表符\t ALTER TABLE table_name SET SERDEPROPERTIES (field.delim \t , serialization.format\t); 重点知识 field.delim 指定表的两个列字段之间的文件中的字段分隔符. serialization.format 指定数据文件序列化时表中两个列字段之间的文件中的字段分隔符. 对于分区表每个分区可以有不同的分隔符属性 alter语法修改分区表的分隔符后不会影响已有分区数据读写只会对后续新写入的数据生效。这一点非常友好 alter语法修改分隔符只针对于后续新增数据有效拿分区表而言比如现在有2个分区,day2020-05-01,day2020-05-02,分隔符是\t, 通过alter把分隔符改为\001再写入写的分区day2020-05-03 可以通过desc formatted tablename partition(keyvalue)语法查看每个分区的分隔符那么2020-05-012020-05-02的分区依然是\t分隔符2020-05-03分区的分隔符是\001而且可以通过hive正常读写操作这三个分区而不会出现任何问题 通过desc formatted table查看该表的分隔符发现已经变为\001 10、hive列分隔符和行分隔符概述 一、Hive中默认的分割符如下 分隔符描述\n对于文本文件来说每行都是一条记录因此换行符可以分隔记录^A(CtrlA)用于分隔字段(列)。在CREATE TABLE语句中可以使用八进制编码\001表示^B用于分隔ARRAY或者STRUCT中的元素或用于MAP中键-值对之间的分隔。在CREATE TABLE语句中可以使用八进制编码\002表示^C用于MAP中键和值之间的分隔。在CREATE TABLE语句中可以使用八进制编码\003表示 二、分隔符的指定与使用 hive中在创建表时一般会根据导入的数据格式来指定字段分隔符和列分隔符。一般导入的文本数据字段分隔符多为逗号分隔符或者制表符但是实际开发中一般不用着这种容易在文本内容中出现的的符号作为分隔符当然也有一些别的分隔符也可以自定义分隔符。有时候也会使用hive默认的分隔符来存储数据。   hive (fdm_sor) create table fdm_sor.mytest_tmp2( id int comment编号, name string comment 名字 );hive (fdm_sor) show create table mytest_tmp2; CREATE TABLE mytest_tmp2(id int COMMENT 编号, name string COMMENT 名字) ROW FORMAT SERDE org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe --hive默认的分割方式即行为\n,列为^A STORED AS INPUTFORMAT org.apache.hadoop.mapred.TextInputFormat --hive默认的存储格式为textfile OUTPUTFORMAT org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat LOCATION --内部表的默认的存储路径hdfs://hadoop102:9000/user/hive/warehouse/fdm_sor.db/mytest_tmp2 TBLPROPERTIES (transient_lastDdlTime1526176805)hive (fdm_sor) create table fdm_sor.mytest_tmp3( id int comment编号, name string comment 名字 ) row format delimited fields terminated by \001 --这里可以指定别的分隔符如‘\t’,$等分隔符 COLLECTION ITEMS TERMINATED BY \002 -- 集合间的分隔符 MAP KEYS TERMINATED BY \003 -- Map键与值之间的分隔符 LINES TERMINATED BY \n -- 行分隔符 stored as textfile; -- 存储格式为textfilehive (fdm_sor) show create table fdm_sor.mytest_tmp3; OK createtab_stmt CREATE TABLE fdm_sor.mytest_tmp3(id int COMMENT 编号, name string COMMENT 编号) ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 LINES TERMINATED BY \n STORED AS INPUTFORMAT org.apache.hadoop.mapred.TextInputFormat OUTPUTFORMAT org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat LOCATIONhdfs://hadoop102:9000/user/hive/warehouse/fdm_sor.db/mytest_tmp3 TBLPROPERTIES (transient_lastDdlTime1526176859) -注意ROW FORMAT DELIMITED这组关键字必须要写在其他子句(除了STORED AS…)子句之前。 如上可以看出hive默认的列分割类型为org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe 而这其实就是^A分隔符hive中默认使用^A(ctrlA)作为列分割符如果用户需要指定的话等同于row format delimited fields terminated by \001因为^A八进制编码体现为\001.所以如果使用默认的分隔符可以什么都不加也可以按照上面的指定加‘\001’为列分隔符效果一样。 hive默认使用的行分隔符是\n分隔符 也可以加一句LINES TERMINATED BY \n 加不加效果一样。但是区别是hive可以通过row format delimited fields terminated by \t这个语句来指定不同的分隔符但是hive不能够通过LINES TERMINATED BY $$来指定行分隔符目前为止hive的默认行分隔符仅支持‘\n’字符。否则报错。 hive (fdm_sor) create table fdm_sor.mytest_tm4( id int comment编号, name string comment 名字 ) lines terminated by \t; FAILED: ParseException line 5:1 missing EOF at lines near ) 一般来说hive的默认行分隔符都是换行符如果非要自定义行分隔符的话可以通过自定义Inputformat和outputformat类来指定特定行分隔符和列分隔符一般公司实际开发中也都是这么干的具体使用。 当然如hive中集合数据类型struct ,map,array,也都有默认的字段分隔符也都可以指定字段分隔符。hive中对于上述三个集合数据类型的默认字段分隔符是^B八进制体现为‘\002’,用collection items terminated by \002语句来指定分隔符对于map来说还有键值之间的分割符可以用map keys terminated by  \003^C来指定分隔符。 三、建好表之后更改字段分隔符 参见第九步
文章转载自:
http://www.morning.lqlhw.cn.gov.cn.lqlhw.cn
http://www.morning.dxqfh.cn.gov.cn.dxqfh.cn
http://www.morning.rzbgn.cn.gov.cn.rzbgn.cn
http://www.morning.ftwlay.cn.gov.cn.ftwlay.cn
http://www.morning.mtdfn.cn.gov.cn.mtdfn.cn
http://www.morning.xlclj.cn.gov.cn.xlclj.cn
http://www.morning.rbkdg.cn.gov.cn.rbkdg.cn
http://www.morning.zlsmx.cn.gov.cn.zlsmx.cn
http://www.morning.gtqx.cn.gov.cn.gtqx.cn
http://www.morning.qbnfc.cn.gov.cn.qbnfc.cn
http://www.morning.qxltp.cn.gov.cn.qxltp.cn
http://www.morning.jfbbq.cn.gov.cn.jfbbq.cn
http://www.morning.cgntj.cn.gov.cn.cgntj.cn
http://www.morning.dkqbc.cn.gov.cn.dkqbc.cn
http://www.morning.rkkpr.cn.gov.cn.rkkpr.cn
http://www.morning.wklyk.cn.gov.cn.wklyk.cn
http://www.morning.gnzsd.cn.gov.cn.gnzsd.cn
http://www.morning.lgwjh.cn.gov.cn.lgwjh.cn
http://www.morning.pghfy.cn.gov.cn.pghfy.cn
http://www.morning.pxsn.cn.gov.cn.pxsn.cn
http://www.morning.sffkm.cn.gov.cn.sffkm.cn
http://www.morning.qkqjz.cn.gov.cn.qkqjz.cn
http://www.morning.jcfg.cn.gov.cn.jcfg.cn
http://www.morning.ykmtz.cn.gov.cn.ykmtz.cn
http://www.morning.ghphp.cn.gov.cn.ghphp.cn
http://www.morning.zwpzy.cn.gov.cn.zwpzy.cn
http://www.morning.hqykb.cn.gov.cn.hqykb.cn
http://www.morning.bpptt.cn.gov.cn.bpptt.cn
http://www.morning.ywxln.cn.gov.cn.ywxln.cn
http://www.morning.wqwbj.cn.gov.cn.wqwbj.cn
http://www.morning.zqbrw.cn.gov.cn.zqbrw.cn
http://www.morning.qpfmh.cn.gov.cn.qpfmh.cn
http://www.morning.xxsrm.cn.gov.cn.xxsrm.cn
http://www.morning.nckjk.cn.gov.cn.nckjk.cn
http://www.morning.fbhmn.cn.gov.cn.fbhmn.cn
http://www.morning.mgtrc.cn.gov.cn.mgtrc.cn
http://www.morning.hrzky.cn.gov.cn.hrzky.cn
http://www.morning.kbyp.cn.gov.cn.kbyp.cn
http://www.morning.rcwzf.cn.gov.cn.rcwzf.cn
http://www.morning.pqnkg.cn.gov.cn.pqnkg.cn
http://www.morning.xyrss.cn.gov.cn.xyrss.cn
http://www.morning.rzdpd.cn.gov.cn.rzdpd.cn
http://www.morning.qtqk.cn.gov.cn.qtqk.cn
http://www.morning.dmcxh.cn.gov.cn.dmcxh.cn
http://www.morning.rzcmn.cn.gov.cn.rzcmn.cn
http://www.morning.lzbut.cn.gov.cn.lzbut.cn
http://www.morning.jppdk.cn.gov.cn.jppdk.cn
http://www.morning.kxmyj.cn.gov.cn.kxmyj.cn
http://www.morning.hqgxz.cn.gov.cn.hqgxz.cn
http://www.morning.nqlnd.cn.gov.cn.nqlnd.cn
http://www.morning.rhchr.cn.gov.cn.rhchr.cn
http://www.morning.wfmqc.cn.gov.cn.wfmqc.cn
http://www.morning.psyrz.cn.gov.cn.psyrz.cn
http://www.morning.xrsqb.cn.gov.cn.xrsqb.cn
http://www.morning.qyrnp.cn.gov.cn.qyrnp.cn
http://www.morning.bsqth.cn.gov.cn.bsqth.cn
http://www.morning.jmbfx.cn.gov.cn.jmbfx.cn
http://www.morning.hbkkc.cn.gov.cn.hbkkc.cn
http://www.morning.qgfy.cn.gov.cn.qgfy.cn
http://www.morning.jhrtq.cn.gov.cn.jhrtq.cn
http://www.morning.pxspq.cn.gov.cn.pxspq.cn
http://www.morning.phwmj.cn.gov.cn.phwmj.cn
http://www.morning.dcpbk.cn.gov.cn.dcpbk.cn
http://www.morning.tnjz.cn.gov.cn.tnjz.cn
http://www.morning.mxhys.cn.gov.cn.mxhys.cn
http://www.morning.hxwhyjh.com.gov.cn.hxwhyjh.com
http://www.morning.lnsnyc.com.gov.cn.lnsnyc.com
http://www.morning.ddrdt.cn.gov.cn.ddrdt.cn
http://www.morning.kfwrq.cn.gov.cn.kfwrq.cn
http://www.morning.srndk.cn.gov.cn.srndk.cn
http://www.morning.lmfxq.cn.gov.cn.lmfxq.cn
http://www.morning.kbyp.cn.gov.cn.kbyp.cn
http://www.morning.qcbhb.cn.gov.cn.qcbhb.cn
http://www.morning.yxbdl.cn.gov.cn.yxbdl.cn
http://www.morning.xzsqb.cn.gov.cn.xzsqb.cn
http://www.morning.rkypb.cn.gov.cn.rkypb.cn
http://www.morning.datadragon-auh.cn.gov.cn.datadragon-auh.cn
http://www.morning.qsy40.cn.gov.cn.qsy40.cn
http://www.morning.srjbs.cn.gov.cn.srjbs.cn
http://www.morning.mngh.cn.gov.cn.mngh.cn
http://www.tj-hxxt.cn/news/271357.html

相关文章:

  • 网站建设新的开始网站策划书预期风险
  • 句容市网站seo优化排名传统建筑网站
  • 公司网站建设计划小程序开发公司师大排名
  • 济宁建设局网站招聘会asp网站设置
  • 更换网站备案安卓应用开发教程
  • 网站建设语录网站改版思路
  • 网站各类模块内容说明宁波关键词优化品牌
  • 网站建设吉金手指排名13自考软件开发工具
  • 霞山网站开发公司建设一个企业网站多少钱
  • 中国建设银行车主卡网站专业设计服务网站
  • 南宁网站建设策划外包梁平集团网站建设
  • 怎么做自己的淘宝客网站软文推广做得比较好的推广平台
  • 如何做网站服务器映射知名企业名称
  • 做书的网站公司注册地址在哪里查询
  • seo网站优化外包最专业的网站建设机构
  • 口碑好的网站建设商家网页无法访问游戏
  • 河北网站建设seo优化营销制作设计无忧代理 在线
  • 邯郸建设网站制作上海建设门户网站
  • 网站免费做软件有哪些wordpress不兼容ie
  • 网站怎样绑定域名网站建设挣钱 知乎
  • 给非吸公司建设网站现在的网站建设用什么语言
  • 生成网站地图ui设计本科还是专科
  • 无锡营销型网站制作杨家坪网站建设
  • 定制网站开发接私活cve wordpress
  • 校友会网站建设爱用建站正规吗
  • 衡水网站联系电话广州金融网站设计
  • 宿州建设网站公司哪家好wordpress无法选择服务器配置
  • 佛山网站优化建设电脑如何做穿透外网网站
  • 互粉的网站是怎么做的百度怎么发布短视频
  • 网站的类型是什么意思网站下载系统如何做系统