分隔符

StringJoiner使用详解

夙愿已清 提交于 2020-02-09 00:05:09
StringJoiner是java.util包下的一个工具类,jdk1.8出来的 作用是在构造字符串时,可以自动添加前缀、后缀及分隔符,而不需要自己去实现这些添加字符的逻辑 先看一个简单的demo StringJoiner sj1 = new StringJoiner(","); StringJoiner sj2 = new StringJoiner(",", "[", "]"); System.out.println(sj1.add("a").add("b").add("c")); System.out.println(sj2.add("a").add("b").add("c")); System.out.println(sj1.merge(sj2)); System.out.println(sj2.merge(sj1)); System.out.println(sj1.length()); StringJoiner有两个构造方法 只传入分隔符 public StringJoiner(CharSequence delimiter) { // 这里只是调用了第二个构造方法,前缀和后缀传入空字符串,表示没有前后缀 this(delimiter, "", ""); } 传入分隔符,还有前缀和后缀 public StringJoiner(CharSequence delimiter,

0738-6.2.0-如何在Hive中使用多分隔符

吃可爱长大的小学妹 提交于 2020-02-06 08:19:37
​文档编写目的 Hive在0.14及以后版本支持字段的多分隔符,参考: https://cwiki.apache.org/confluence/display/Hive/MultiDelimitSerDe 而Fayson在以前的文章中也基于C5的环境介绍过如何在Hive中使用多分隔符,参考《 Hive多分隔符支持示例 》。本文主要介绍在CDH6中如何让Hive支持多分隔符。 测试环境 1.Redhat7.2 2.CDH6.2.0 3.Hive2.1 数据准备 如何将多个字符作为字段分割符的数据文件加载到Hive表中,示例数据如下: 字段分隔符为“@#$” test1@#$test1name@#$test2valuetest2@#$test2name@#$test2valuetest3@#$test3name@#$test4value 如何将上述示例数据加载到Hive表(multi_delimiter_test)中,表结构如下: 实现方式 1.从CM进入Hive,点击配置搜索aux,在Hive 辅助 JAR 目录 中输入/opt/cloudera/parcels/CDH/lib/hive/contrib,保存更改,重启。 2.准备多分隔符文件并装载到HDFS对应目录 [root@cdh1~]#ll-hmulti_de.txt-rw-r--r--1rootroot1.1GJan623

PSR规范

蹲街弑〆低调 提交于 2020-02-06 03:16:16
04是自动加载的规范, 12是代码规范, 3是日志规范,后面的数字就是升级版 PSR 是 PHP Standard Recommendations 的简写,由 PHP FIG 组织制定的 PHP 规范,是 PHP 开发的实践标准。 项目的目的在于:通过框架作者或者框架的代表之间讨论,以最低程度的限制,制定一个协作标准,各个框架遵循统一的编码规范,避免各家自行发展的风格阻碍了 PHP 的发展,解决这个程序设计师由来已久的困扰。 目前已表决通过了 6 套标准,已经得到大部分 PHP 框架的支持和认可。 1.PSR-0 自动加载规范,此规范已被启用-本规范已于2014年10月21日被标记为弃用,目前新的替代规范为【PSR-4】 本文是为自动加载器实现通用自动加载所需要遵循的编码规范 一个标准的命名空间与类名称的定义必须符合以下结构:<Vendor Name> (ClassName) 其中Vendor Name 为每个命名空间都必须要有的一个顶级命名空间名 需要的话,每个命名空间下可以拥有多个子命名空间 当根据完整的命名空间名从文件系统中载入类文件时,每个命名空间之间的分隔符都会被转换成文件夹路径分隔符 类命名中的每个_字符也会被转换成文件夹路径分隔符,而命名空间中的_字符则是无特殊含义的。 当从文件系统中载入标准的命名空间或类时,都将添加.php为目标文件后缀 组织名称(Vendor

hive 常用函数

烂漫一生 提交于 2020-02-05 07:14:00
1.日期比较函数: datediff 语法: datediff(string enddate,string startdate) 返回值: int 说明: 返回结束日期减去开始日期的天数。 举例:hive> select datediff('2016-12-30','2016-12-29'); 返回1 2.日期增加函数: date_add 语法: date_add(string startdate, intdays) 返回值: string 说明: 返回开始日期startdate增加days天后的日期。 举例:hive>select date_add('2016-12-29',10); 返回2017-01-08 3.日期减少函数: date_sub 语法: date_sub (string startdate,int days) 返回值: string 说明: 返回开始日期startdate减少days天后的日期。 举例:hive>select date_sub('2016-12-29',10); 返回2016-12-19 查询近30天的数据select * from table where datediff(current_timestamp,create_time)<=30; create_time 为table里的字段,current_timestamp 返回当前时间

MySQL拼接字符串,GROUP_CONCAT 值得拥有

早过忘川 提交于 2020-02-04 11:26:06
原文: MySQL拼接字符串,GROUP_CONCAT 值得拥有 上一篇文章 跨表更新,看到自己写的SQL像个憨憨 写了关于跨表个更新的内容。一年过的很快,文中后来的两位员工 馮大 和 馮二 也要面对无情的 KPI 考核了,他们工作干的很不错,performance 分别是 4 和 5 新需求来了,静悄悄的来了!!! 领导想要查看每个 performance 下都有谁,同时要求将这些人的名称要逗号拼接成一个字符串,也就是说要得到下面的结果: 要将结果集中某个指定的列进行字符串拼接,这要怎么做呢?主角闪亮✨登场 GROUP_CONCAT(expr) 在 Mysql 官方文档 中,该函数被放在聚合函数章节,如果你要按照指定字段分组拼接,就要配合关键字 GROUP BY 来使用的 定义 该函数返回一个字符串结果,该字符串结果是通过分组串联的 非NULL值 。如果没有非NULL值,则返回NULL。完整语法如下: GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val]) What? 这个语法看着太复杂了吧,别着急,下面会用例子慢慢说明逐一验证滴 使用案例 先完成文章开头的需求

MySQL拼接字符串,GROUP_CONCAT 值得拥有

亡梦爱人 提交于 2020-02-04 09:38:21
上一篇文章 跨表更新,看到自己写的SQL像个憨憨 写了关于跨表个更新的内容。一年过的很快,文中后来的两位员工 馮大 和 馮二 也要面对无情的 KPI 考核了,他们工作干的很不错,performance 分别是 4 和 5 新需求来了,静悄悄的来了!!! 领导想要查看每个 performance 下都有谁,同时要求将这些人的名称要逗号拼接成一个字符串,也就是说要得到下面的结果: 要将结果集中某个指定的列进行字符串拼接,这要怎么做呢?主角闪亮✨登场 GROUP_CONCAT(expr) 在 Mysql 官方文档 中,该函数被放在聚合函数章节,如果你要按照指定字段分组拼接,就要配合关键字 GROUP BY 来使用的 定义 该函数返回一个字符串结果,该字符串结果是通过分组串联的 非NULL值 。如果没有非NULL值,则返回NULL。完整语法如下: GROUP_CONCAT([DISTINCT] expr [,expr ...] [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC] [,col_name ...]] [SEPARATOR str_val]) What? 这个语法看着太复杂了吧,别着急,下面会用例子慢慢说明逐一验证滴 使用案例 先完成文章开头的需求: SELECT performance, GROUP

python 读取文件read.csv报错 OSError: Initializing from file failed

假装没事ソ 提交于 2020-02-04 09:01:10
小编在用python 读取文件read.csv的时候 报了一个错误 OSError: Initializing from file failed 初始化 文件失败 检查了文件路径,没问题 那应该是我文件名是中文的缘故,百度了一波,说是将read.csv 的参数 engine 设置为“python”,就不报错了,试了一下,果真是 那么这个engine 参数究竟是设置啥呢? engine 解析数据的引擎,应该是编译器 默认的engine 是C ,C编译器 文件路径不能有中文,不能自动检测分隔符 但是当engine 为 python 的时候就可以检测分隔符且文件路径能为中文。 来源: https://www.cnblogs.com/4991tcl/p/10448351.html

linux_awk小例子

醉酒当歌 提交于 2020-02-04 06:16:41
集群为什么那么慢,等的人无语啊。。。。。。 1:awk '/555555*/' test 打印所有包含模式/555555*/的行 2:awk '{print $1}' test 打印文件的第一个字段,字段从行的左端开始,以空白符分隔 3:awk '{print $1,$3}' test 打印文件的第一,第三个字段 4:awk '/555555/{print $1,$3}' test 打印包含模式/555555/的第一,第三个字段 awk原理: 1):awk使用一行作为输入,并将这一行赋给内部变量$0,默认时每一行也可以称为一个记录,以换行符结束。 2):然后,行被空格分解成字段,每一个字段存储在已编号的变量中,从$1开始,可以多达100个字段。 3):awk如何知道空格是用来分隔字段的呢?因为有另一个内部变量FS用来确定字段的分隔符。初始时,FS被赋为空格——包含制表符和空格符。如果需要使用其他的字符分隔符,如冒号或破折号,则需要将FS变量的值设为新的字段分隔符。 4):awk打印字段时,将以下面的方式使用print函数:{print $1,$3};逗号比较特殊,它映射为另一个内部变量,称为输出字段分隔符OFS,OFS默认为空格。逗号被OFS变量中存储的字符替换。 5):awk输出之后,将从文件中获取另一行,并将其存储到$0中,覆盖原来的内容,然后将新的字符串分隔成字段并进行处理

linux awk命令详解

最后都变了- 提交于 2020-02-01 08:33:15
awk是行处理器 : 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息 awk处理过程: 依次对每一行进行处理,然后输出 awk命令形式: awk [-F|-f|-v] ‘BEGIN{} //{command1; command2} END{}’ file [-F|-f|-v] 大参数,-F指定分隔符,-f调用脚本,-v定义变量 var=value ' ' 引用代码块 BEGIN 初始化代码块,在对每一行进行处理之前,初始化代码,主要是引用全局变量,设置FS分隔符 // 匹配代码块,可以是字符串或正则表达式 {} 命令代码块,包含一条或多条命令 ; 多条命令使用分号分隔 END 结尾代码块,在对每一行进行处理之后再执行的代码块,主要是进行最终计算或输出结尾摘要信息 特殊要点: $0 表示整个当前行 $1 每行第一个字段 NF 字段数量变量 NR 每行的记录号,多文件记录递增 FNR 与NR类似,不过多文件记录不递增,每个文件都从1开始 \t 制表符 \n 换行符 FS BEGIN时定义分隔符 RS 输入的记录分隔符, 默认为换行符(即文本是按一行一行输入) ~ 匹配,与==相比不是精确比较 !~ 不匹配,不精确比较 == 等于,必须全部相等,精确比较 != 不等于,精确比较 &&  逻辑与 || 逻辑或 + 匹配时表示1个或1个以上

Java File类的学习

北慕城南 提交于 2020-02-01 00:36:24
File类的概述 java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。 File类部分构造方法 /** * 从父抽象路径名和子路径名字符串创建新的File实例。 */ private File(String child, File parent) { ... } /** * 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。 */ public File(String pathname) { ... } 路径分隔符和默认名称分隔符 // 依赖于系统的默认名称分隔符字符。此字段初始化为包含系统属性<code>file.separator</code>值的第一个字符。 // 在UNIX系统上,此字段的值为<code>'/'</code>;在Microsoft Windows系统上,此字段的值为<code>'\'</code>。 public static final char separatorChar = fs.getSeparator(); // 依赖于系统的默认名称分隔符字符,为方便起见表示为字符串。 public static final String separator = "" + separatorChar; // 依赖于系统的路径分隔符字符。此字段初始化为包含系统属性<code>path.separator<