分隔符

Hive知识点

余生颓废 提交于 2019-12-06 11:46:42
1、Hive是一种建立在Hadoop文件系统上的数据仓库架构,并对存储在HDFS中的数据进行分析和管理; (也就是说对存储在HDFS中的数据进行分析和管理,我们不想使用手工,我们建立一个工具把,那么这个工具就可以是hive) 2、 hive建表语法中的分隔符设定 ROW FORMAT DELIMITED 分隔符设置开始语句 FIELDS TERMINATED BY:设置字段与字段之间的分隔符 COLLECTION ITEMS TERMINATED BY:设置一个复杂类型(array,struct)字段的各个item之间的分隔符 MAP KEYS TERMINATED BY:设置一个复杂类型(Map)字段的key value之间的分隔符 LINES TERMINATED BY:设置行与行之间的分隔符 例: hive> create table t(id struct<id1:int,id2:int,id3:int>,name array<string>,xx map<int,string>) row format delimited fields terminated by '\t' collection items terminated by ',' map keys terminated by ':' lines terminated by '\n'; OK Time taken

Python split()方法

旧巷老猫 提交于 2019-12-06 10:04:41
Python split() 通过 指定分隔符对字符串进行切片 ,如果参数 num 有指定值,则分隔 num+1 个子字符串 语法 str.split(str="", num=string.count(str)). 参数 str--分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。 num--分割次数。默认为 -1, 即分隔所有。 返回值 返回分割后的 字符串列表 。 实例 str = "Line1-abcdef \nLine2-abc \nLine4-abcd"; print str.split( ); # 以空格为分隔符,包含 \n print str.split(' ', 1 ); # 以空格为分隔符,分隔成两个 输出结果为: ['Line1-abcdef', 'Line2-abc', 'Line4-abcd'] ['Line1-abcdef', '\nLine2-abc \nLine4-abcd'] 来源: https://www.cnblogs.com/patrolli/p/11975902.html

Java如何获取当前类路径

谁说胖子不能爱 提交于 2019-12-06 06:49:42
1 .如何获得当前文件路径 常用: ( 1 ).Test. class .getResource( "" ) 得到的是当前类FileTest. class 文件的URI目录。不包括自己! ( 2 ).Test. class .getResource( "/" ) 得到的是当前的classpath的绝对URI路径。 ( 3 ).Thread.currentThread().getContextClassLoader().getResource( "" ) 得到的也是当前ClassPath的绝对URI路径。 ( 4 ).Test. class .getClassLoader().getResource( "" ) 得到的也是当前ClassPath的绝对URI路径。 ( 5 ).ClassLoader.getSystemResource( "" ) 得到的也是当前ClassPath的绝对URI路径。 尽量不要使用相对于System.getProperty( "user.dir" )当前用户目录的相对路径,后面可以看出得出结果五花八门。 ( 6 ) new File( "" ).getAbsolutePath()也可用。 2 .Web服务器 ( 1 ).Tomcat 在类中输出System.getProperty( "user.dir" );显示的是%Tomcat_Home%/bin (

AWK数组

三世轮回 提交于 2019-12-06 05:27:47
第1章 awk命令基础               1.1 awk命令执行过程                       1、如果BEGIN 区块存在,awk执行它指定的动作。 2、awk从输入文件中读取一行,称为一条输入记录。如果输入文件省略,将从标准输入读取 3、awk将读入的记录分割成字段,将第1个字段放入变量$1中,第2个字段放入$2,以此类推。$0表示整条记录。字段分隔符使用shell环境变量FS或由参数指定。 4、把当前输入记录(数据行)依次与每一个awk命令中awk条件比较,看是否匹配,如果相匹配,就执行对应的动作。如果不匹配,就跳过对应的动作,直到比较完所有的awk命令。 5、当一条输入记录比较了所有的awk命令后,awk读取输入的下一行,继续重复步骤3和4,这个过程一直持续,直到awk读取到文件尾。 6、当awk读完所有的输入行后,如果存在END,就执行相应的动作。 1.2 awk中模式与动作                       'pattern{action}' 1.2.1 在awk眼中的行与列                               field 字段,列 record 记录,行 1.3 awk默认有一把“菜刀”                     空格系列 (单独的空格,连续的空格,tab键) -F 指定分隔符 -vFS FS

Python常用操作

二次信任 提交于 2019-12-06 05:08:25
1.当前日期格式化: time.strftime('%Y-%m-%d',time.localtime(time.time())) 例子:输出当前日期: import timeprint(time.strftime('%Y-%m-%d',time.localtime(time.time()))) 2.pprint: pprint模块 提供了打印出任何python数据结构类和方法。print()和pprint()都是python的打印模块,功能基本一样,唯一的区别就是pprint()模块打印出来的数据结构更加完整,每行为一个数据结构,更加方便阅读打印输出结果。特别是对于特别长的数据打印,print()输出结果都在一行,不方便查看,而pprint()采用分行打印输出,所以对于数据结构比较复杂、数据长度较长的数据,适合采用pprint()打印方式。使用如下: import pprint pp = pprint.PrettyPrinter(indent=4) pp.pprint(stuff) 或(较常见) import pprint pprint.pprint(stuff) 3.django 模板遍历dict: {% for k,v in item.items %} {{k}}{{v}} {% endfor %} 4.编码: \x ascii编码 \u unicode编码 decode(

ansible七种武器和json

心已入冬 提交于 2019-12-06 02:36:56
ansible七种武器和json • 第一种武器 – ansible 命令 , 用于执行临时性的工作 , 也是我们之前主要学习的功能 , 必须掌握 • 第二种武器 – ansible-doc 是 Ansible 模块文档说明 , 针对每个模块都有详细的用法说明及应用案例介绍 , 功能和 Linux 系统 man 命令类似 , 必须掌握 ansible 七种武器 • 第三种武器 – ansible-console 是 Ansible 为用户提供的一款交互式工具 , 用户可以在 ansible-console 虚拟出来的终端上像 Shell 一样使用 Ansible 内置的各种命令 , 这为习惯于使用 Shell 交互方式的用户提供了良好的使用体验。 • 第四种武器 – ansible-galaxy 从 github 上下载管理 Roles 的一款工具 , 与 python 的 pip 类似。 ansible 七种武器 • 第五种武器 – ansible-playbook 是日常应用中使用频率最高的命令 , 其工作机制是 : 通过读取预先编写好的 playbook 文件实现批量管理。要实现的功能与命令 ansible 一样 , 可以理解为按一定条件组成的 ansible 任务集 , 必须掌握 • 第六种武器 – ansible-vault 主要用于配置文件加密 , 如编写的

MySQL 固定分隔符列转行

人走茶凉 提交于 2019-12-06 01:59:30
有如下一个表,需要将tag列的每个标签都提取出来,一行对应一个标签 mysql> select * from user_tag; +--------+-----------------+ | userid | tag | +--------+-----------------+ | 1 | css,go | | 2 | mysql,sql,html | | 3 | css,spring,php | | 4 | css,java,go,sql | | 5 | java,c | | 6 | c | +--------+-----------------+ 6 rows in set (0.00 sec) 行转列实现过程 1.首先我们算出每个用户的标签个数: select userid,LENGTH(a.tag)-LENGTH(REPLACE(a.tag,',',''))+1 from user_tag; mysql> select userid,tag,LENGTH(tag)-LENGTH(REPLACE(tag,',',''))+1 from user_tag; +--------+-----------------+-------------------------------------------+ | userid | tag | LENGTH(tag)-LENGTH

12、mysql导入数据

三世轮回 提交于 2019-12-05 23:51:56
1、mysql命令导入 语法: mysql -u root -p passwd < runoob.sql 2、source命令导入 source aa.sql 3、使用load data导入数据 MySQL 中提供了LOAD DATA INFILE语句来插入数据。 以下实例中将从当前目录中读取文件 dump.txt ,将该文件中的数据插入到当前数据库的 mytbl 表中。 mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;  如果指定LOCAL关键词,则表明从客户主机上按路径读取文件。如果没有指定,则文件在服务器上按路径读取文件。 你能明确地在LOAD DATA语句中指出列值的分隔符和行尾标记,但是默认标记是定位符和换行符。 两个命令的 FIELDS 和 LINES 子句的语法是一样的。两个子句都是可选的,但是如果两个同时被指定,FIELDS 子句必须出现在 LINES 子句之前。 如果用户指定一个 FIELDS 子句,它的子句 (TERMINATED BY、[OPTIONALLY] ENCLOSED BY 和 ESCAPED BY) 也是可选的,不过,用户必须至少指定它们中的一个。 mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl -> FIELDS

(转)java DecimalFormat用法

人走茶凉 提交于 2019-12-05 17:42:35
显示现象 数据类型   实体类中为 private Double tradeAmount;   Oracle数据库中为 NUMBER(19,4) 解决方式   第一种解决方式 - 无效      将Double转为String,( String.valueOf(double)方法, 也可以用最笨的方法,就是直接+; 如:String str = ""+double; )   第二种解决方式 - 引起一系列问题     将实体类中的Double修改为BigDecimal     使用SQL查询时是正常的, 但是使用HQL查询异常(hibernate expected type: java.math.BigDecimal, actual value: java.lang.Double)     原因: SQL查询可以设置返回值的类型, 强转为实体类时一一对应; HQL是默认转换, 暂时没有找到相关处理方式 第三种方式 - 完美解决 使用DecimalFormat将Double格式化为String public void setTradeAmount(Double tradeAmount) { DecimalFormat df = new DecimalFormat("#.###"); this.tradeAmountStr = df.format(tradeAmount); this

MySQL多关键字多字段模糊查询

风流意气都作罢 提交于 2019-12-05 11:33:50
假设有这样两条数据: (表名为user) 1) username=admin,password=000000 2) username=admin,password=123456 我们要实现的效果是可以输入多个关键字查询,多个关键字间以逗号分隔。 使用上述表举例:输入单个关键字“admin”可查出这两条数据,输入“admin,000000”只查出第一条数据,可实现的sql语句是: select * from user where concat(username, password) like '%admin%'; select * from user where concat(username, password) like '%admin%' and concat(username, password) like '%000000%'; concat的作用是连接字符串,但这样有一个问题:如果你输入单个关键字“admin000000”也会查到第一条数据,这显然不是我们想要的结果,解决方法是:由于使用逗号分隔多个关键字,说明逗号永远不会成为关键字的一部分,所以我们在连接字符串时把每个字段以逗号分隔即可解决此问题,下面这个sql语句不会查询到第一条数据: select * from user where concat(username, ',', password) like '