
编程语言
文章平均质量分 57
主要为编程语言,如:Java、Scala、Python、shell等
浮云6363
这个作者很懒,什么都没留下…
展开
-
【shell】shell对文件和文件夹的判断
文件和文件对象参数:-e 判断对象是否存在-d 判断对象是否存在,并且为目录-f 判断对象是否存在,并且为常规文件-L 判断对象是否存在,并且为符号链接-h 判断对象是否存在,并且为软链接-s 判断对象是否存在,并且长度不为0-r 判断对象是否存在,并且可读-w 判断对象是否存在,并且可写-x 判断对象是否存在,并且可执行-O 判断对象是否存在,并且属于当前用户-G 判断对象是否存在,并且属于当前用户组-nt 判断file1是否比file2新 [ "/data/file1" -nt原创 2021-03-20 21:34:22 · 1559 阅读 · 0 评论 -
【Scala入门】Scala数据类型与类型转换
目录数据类型scala类型层次结构类型转换概述自动类型转换强制类型转换数据类型基础类型类型说明Byte8位有符号补码整数。数值区间为 -128 到 127Short16位有符号补码整数。数值区间为 -32768 到 32767Int32位有符号补码整数。数值区间为 -2147483648 到 2147483647Long64位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807Char16原创 2021-03-04 16:38:06 · 2966 阅读 · 1 评论 -
pandas对csv操作基础学习
以下操作我使用的python版本为3.6.5导包import pandas as pdimport numpy as npfrom pandas import Series,DataFrame读取csv文件credits = pd.read_csv('D:/BaiduNetdiskDownload/tmdb-movie-metadata/tmdb_5000_credits.csv')...原创 2020-03-29 20:37:04 · 319 阅读 · 0 评论 -
【shell】Shell中字符串截取详解
文章目录从指定位置开始截取从字符串左边开始计数从右边开始计数从指定字符(子字符串)开始截取使用 # 号截取右边字符使用 % 截取左边字符汇总Shell 截取字符串通常有两种方式:从指定位置开始截取和从指定字符(子字符串)开始截取。从指定位置开始截取这种方式需要两个参数:除了指定起始位置,还需要截取长度,才能最终确定要截取的字符串。既然需要指定起始位置,那么就涉及到计数方向的问题,到底是从...原创 2020-02-19 00:24:41 · 938 阅读 · 0 评论 -
shell按月份循环执行hive脚本
在开发中,怎样编写脚本输入开始月份、结束月份自动跑数呢?对shell中getopts不懂的请查看我以前博客shell中的getopt提供以下脚本供参考:#!/bin/sh#*****************************************************************************************#*** 程序功能: 按天循环导入分...原创 2020-02-18 22:29:27 · 1258 阅读 · 0 评论 -
shell中的getopt
Linux中的位置变量和预定义变量shell中的getoptsgetopt是一个外部命令,不是bash内置命令,Linux发行版通常会自带getopt支持短选项和长选项老版本的getopt问题较多,增强版getopt比较好用,执行命令getopt -T; echo $?,如果输出4,则代表是增强版的如果短选项带argument且参数可选时,argument必须紧贴选项,如-carg 而...原创 2020-02-05 23:43:52 · 1003 阅读 · 0 评论 -
shell中的getopts
在bash中,可以用以下三种方式来处理命令行参数:直接处理:使用$1,$2,...,$n进行解析getopts:单个字符选项的情况(如:-f file.txt等选项)getopt:可以处理单个字符选项,也可以处理长选项long-option(如:–prefix=/home等)Linux中的位置变量和预定义变量本篇主要聊聊getopts说明:getopts是bash的内部命令g...原创 2020-02-05 22:59:02 · 737 阅读 · 0 评论 -
Java中的volatile
目录可见性保证Happens-before 保证volatile 并不能满足所有场景什么时候单单使用 volatile 就够了?volatile 的性能考虑Java的关键字 volatile 用于将变量标记为“存储于主内存中”。更确切地说,对 volatile 变量的每次读操作都会直接从计算机的主存中读取,而不是从 cpu 缓存中读取;同样,每次对 volatile 变量的写操作都会直接写入到...转载 2020-01-04 14:40:33 · 280 阅读 · 0 评论 -
Java单例模式(Singleton)
目录一. 什么是单例模式二. 单例模式的特点三. 单例模式VS静态类四. 单例模式的实现1. 懒汉模式2. 线程安全的懒汉模式3. 饿汉模式4. 静态类内部加载5. 枚举方法6. 双重校验锁法总结一. 什么是单例模式因程序需要,有时我们只需要某个类同时保留一个对象,不希望有更多对象,此时,我们则应考虑单例模式的设计。二. 单例模式的特点单例模式只能有一个实例。单例类必须创建自己...转载 2020-01-04 13:04:21 · 290 阅读 · 0 评论 -
pandas中出现错误的解决办法:OSError: Initializing from file failed
原因:pandas不支持读路径或文件名中包含中文的csv/txt文件的解决办法:先open(“文件”),在read_csv(f)或read_table(f)f = open("D:\GoogleDownloads\临时文件\idfa_info.txt")idfa1 = pd.read_table(f, sep='\t')在read_csv()或read_table()函数中添加参...原创 2020-01-02 17:04:41 · 961 阅读 · 0 评论 -
Java中==和equals的区别
Java程序中测试两个变量是否相等有两种方式:一种是利用==运算符,另一种是利用equals()方法的功能。当使用==来判断两个变量是否相等时,如果两个变量是基本类型,且都是数值类型(不一定要求数据类型严格相同),则只要两个变量的值相等,就将返回true。但对于两个引用类型变量,只有它们指向同一个对象时,==判断才会返回true。==不可用于比较类型上没有父子关系的两个对象。/** * @Au...原创 2020-01-01 21:06:38 · 106 阅读 · 0 评论 -
Java中的String,StringBuilder,StringBuffer三者的区别
目录String:字符串常量StringBuffer:可变字符串(线程安全)StringBuilder:可变字符串(线程不安全)总结:String StringBuffer StringBuild字符串拼接速度比拼代码测试String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更...原创 2020-01-01 16:59:04 · 129 阅读 · 0 评论 -
Java中的集合--collection
Java的集合类主要由两个接口派生而出:Collection和Map,Collection和Map是Java集合框架的跟接口,这两个接口又包含了一些子接口和实现类。Collection接口是List(有序可重复集合)、Set(无序不可重复集合)、Queue(队列,先进先出)接口的父接口,Collection接口中有以下操作集合元素的方法。boolean add(Object o) : 该方法...原创 2019-12-22 16:51:21 · 236 阅读 · 0 评论 -
Java实现在图片中添加文字水印
import java.awt.*;import java.awt.image.BufferedImage;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import javax.imageio.ImageIO;/** * @Author: 浮云 * @Date: 201...原创 2019-12-22 00:25:38 · 576 阅读 · 0 评论 -
Java对properties文件的读写、增删改及中文乱码解决
在开发中,经常会遇到读取properties配置文件,如果直接把配置文件在Java代码中写死打成jar包,想改配置就必须要重新改代码在编译成jar包发版运行,这样麻烦,如果将配置放入properties文件中,下次配置(例如读取MySQL数据,用户密码可能会经常改变)参数改变时只需要改变配置文件内容就行,无需改动代码,方便很多。以下代码对properties文件读取、更新、插入和删除操作,并解决...原创 2019-11-03 19:13:58 · 472 阅读 · 0 评论 -
Scala(Spark)Shell中如何输入多行命令
经常将程序片段直接黏贴到spark-shell里,会遇到多行输入的异常,可按以下方法解决scla-shell里直接输入:paste命令,黏贴后结束按ctrl+D2.scala-shell里通过:load 命令scala-shell里通过:可以在命令中通过花括号或括号实现多行...原创 2019-10-30 16:07:24 · 3740 阅读 · 0 评论 -
【Scala入门】Scala中的Map集合:key必须唯一
Map(映射)是一种可迭代的键值对(key/value)结构。所有的值都可以通过键来获取。Map 中的键都是唯一的。Map 也叫哈希表(Hash tables)。Map 有两种类型,可变与不可变,区别在于可变对象可以修改它,而不可变对象不可以。默认情况下 Scala 使用不可变 Map。如果你需要使用可变集合,你需要显式的引入 import scala.collection.mutabl...原创 2019-09-25 11:33:55 · 2697 阅读 · 0 评论 -
【Scala入门】Scala中的Set集合:无序的,不可重复的
package com.fuyun.bigdata.scala.collection/** * Set集合:数学意义上的集合:无序的,不可重复的(归根于底层实现,使用Map) * 使用场景: * 去重,使用set存储数据 */object SetDemo { def main(args: Array[String]): Unit = { /* * 对...原创 2019-09-24 17:29:07 · 1225 阅读 · 0 评论 -
shell脚本通过参数名传递参数值
平常在写shell脚本都是用$1,$2…这种方式来接收参数,然而这种接收参数的方式不但容易忘记且不易于理解和维护。Linux常用的命令都可指定参数名和参数值,然而我们怎样才能给自己的shell脚本也采用参数名和参数值这样的方式来获取参数值呢?而不是通过$1,$2这种方式进行获取。下面的例子定义了短参数名和长参数名两种获取参数值的方式。其实是根据getopt提供的特性进行整理而来。while ge...原创 2019-09-24 16:53:52 · 5277 阅读 · 0 评论 -
【Scala入门】Scala中的List有序可重复集合:列表List基本使用
package com.fuyun.bigdata.scala.collectionimport scala.collection.mutable.ListBuffer/** * List有序可重复集合:列表List基本使用 */object ListDemo { def main(args: Array[String]): Unit = { // 创建空列表 ...原创 2019-09-20 11:32:26 · 1722 阅读 · 0 评论 -
【Scala入门】Scala中的ArrayBuffer(可变长数组,类似于Java中的StringBuffer)
/** * ArrayBuffer(可变长数组,类似于Java中的StringBuffer) */object ArrayBufferDemo { def main(args: Array[String]): Unit = { // 如果不想每次都使用全限定名,则可以预先导入ArrayBuffer类 import scala.collection.mutable....原创 2019-09-19 22:11:00 · 1687 阅读 · 0 评论 -
【Scala入门】Scala中的Array(定长数组)
object ArrayDemo { def main(args: Array[String]): Unit = { /* * 定义一个数组 */ val numArr = Array(6, 8, 9) // 对数组中每个元素进行操作 // TODO: def foreach[U](f: A => U): Unit numAr...原创 2019-09-19 17:22:39 · 1677 阅读 · 0 评论 -
【Scala入门】Scala中的For循环
import scala.collection.immutable/** * For循环 */object ForDemo { def main(args: Array[String]): Unit = { //定义一个数组变量,to后的第一个参数为末位置(包含该值),第二个参数为步长(负数为递减) val arr1 = 1 to (10, 2) val ...原创 2019-09-19 11:33:45 · 596 阅读 · 0 评论 -
Linux中查看文件编码和修改文件编码
最近遇到一个需求,给我两个大文件,映射到Hive表中。文件中每个字段的值都有"",字段分隔符为’,’ ,通过vi查看文件内容正常,没有出现乱码。首先想到的方法是在hive中创建对应的表,然后通过put,将文件上传到hive表对应的hdfs目录下,然后查询发现乱码。下面来聊聊具体过程和解决办法:创建对应的hive表create table temp.temp_bianma_tb (c...原创 2019-08-04 01:12:05 · 2510 阅读 · 0 评论 -
Linux中sort命令的用法
目录命令格式:常见参数:测试:1. 去重2. 去重+降序(倒序)排序:3. 按数字排序:4. 按数字倒序排序5. 指定分隔符排序:按对应的列排序sort命令:用于将文本文件内容加以排序,sort可针对文本文件的内容,以行为单位来排序。命令格式:sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>...原创 2019-07-28 11:08:46 · 1880 阅读 · 0 评论 -
Linux Shell重定向(输入输出重定向)
目录硬件设备和文件描述符Linux Shell 输出重定向输出重定向举例错误输出重定向举例正确输出和错误信息同时保存/dev/null 文件Linux Shell 输入重定向输入重定向举例Linux Shell 重定向分为两种,一种输入重定向,一种是输出重定向;从字面上理解,输入输出重定向就是「改变输入与输出的方向」的意思。那么,什么是输入输出方向呢?标准的输入输出方向又是什么呢?一般情况...原创 2019-07-14 01:38:01 · 1902 阅读 · 0 评论 -
shell中如何使用函数
目录传递参数递归函数一个脚本调另一个脚本函数shell作为轻量级的脚本语言,也可以用户自定义函数,然后在shell脚本中调用,类似与Java中的类和方法。今天就来聊聊shell中函数的那些事。shell函数的定义语法如下:[ function ] funname [()]{action;[return int;]}说明:1、可以带function fun() 定义,也可以直接f...原创 2019-03-31 00:20:08 · 1104 阅读 · 1 评论 -
【Scala进阶】Scala中如何将Java集合实例对象转换为Scala实例对象(互相转换)
目录scala、java双向转化通过asJava进行Scala到Java的单向转换通过asScala进行Java到Scala的单向转换具体描述性的名称显示调用Scala转JavaJava转Scala目前开发语言众多,在开发中,可能会遇到Java,Scala混合系统,但因java,scala中的集合对象不一致,会致使在开发中遇到很多问题,得需要两种语言集合的互相转换。Scala从2.8.1开始引...原创 2019-03-24 21:59:47 · 2248 阅读 · 0 评论 -
shell获取指定开始结束时间内的所有日期及实战应用
在大数据离线开发中,可能会遇到这样的情景:重刷从某天到某天的历史数据,比如重新跑从20180101到20190228的历史数据,按天分区。接到这样的需求最笨的解决办法就是将hql语句每天手动跑一次,这样可想而知多繁琐。第二中方法是编写脚本每月跑一次,脚本如下:#!/bin/bash#该脚本只能一个月的执行,输入的两个参数必须是月初、月末,格式为:yyyyMMdd#输出脚本名称echo 运...原创 2019-03-24 14:42:54 · 1735 阅读 · 0 评论 -
shell的日期处理
目录天的处理获取今天日期:`date +%Y%m%d` 或 ``date +%F`` 或 `date +%y%m%d `获取昨天日期:`date -d yesterday +%Y%m%d`获取前天日期:`date -d -2day +%Y%m%d`依次类推比如获取10天前的日期:`date -d -10day +%Y%m%d`或n天前的 `date -d "n days ago" +%y%m%d`...原创 2019-03-24 13:56:54 · 3583 阅读 · 0 评论 -
Linux中的位置变量和预定义变量
目录位置变量脚本中$1-$9,表示第一个到第九个参数预定义变量$0: 表示脚本的名称$#:统计参数的个数$*:所有的参数,整体,\$@: 表示所有参数,一个参数是一个整体$?:上一条命令执行的结果$!: 表示进程PID位置变量脚本中$1-$9,表示第一个到第九个参数编写脚本vi location_var.sh#!/bin/bashecho $1echo this is the $...原创 2019-02-26 22:59:43 · 1498 阅读 · 1 评论