标签:访问 数据库 区别 pen window 数据库数据 bash spl app
常用指令记录
Python常用操作:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 画图的字体问题
from pylab import mpl
mpl.rcParams[‘font.sans-serif‘] = [‘FangSong‘] # 指定默认字体
mpl.rcParams[‘axes.unicode_minus‘] = False # 解决保存图像是负号‘-‘显示为方块的问题
# 显示所有行列
pd.set_option("display.max_columns",None)
pd.set_option("display.max_rows",None)
# 输出所有变量
from IPython.core.interactiveshell import InteractiveShell
InteractiveShell.ast_node_interactivity = "all"
# 画图x轴标签倾斜
import pylab as pl
pl.xticks(rotation=45)
# 确定字符串都是数字字符
data1[‘t‘] = data1[‘atx‘].str.isdigit()
data1 = data1[data1[‘t‘] == True]
# 连接postgres数据库,读取数据
conn = psycopg2.connect(database="", user="", password="", host="", port="")
cur = conn.cursor()
cur.execute("SELECT title FROM \"fd_content_interaction\";")
rows = cur.fetchone() //fetchone,fetchall,fetchmany(num=None) # 即取数据量大小
print(rows)
conn.commit()
cur.close()
conn.close() # 关闭数据库的原因是,数据库同时链接人数是有限的;数据库数据用python读取下来,jasonarray等格式转换过来就是tuple里的dict等格式
# 过滤空字符,0和None
a = list(filter(None, list1)) # 空字符和None都是布尔值为0的
# 实现时间序
pd.date_range(‘20100101‘,periods=1000)
# 打开文件
with open("/tmp/foo.txt") as file:
data = file.read()
# 对多个row进行操作,返回到一个row中作为值
def my_test(a, b):
return a + b
df[‘value‘] = df.apply(lambda row: my_test(row[‘c1‘], row[‘c2‘]), axis=1)
hive常用操作:
hive
hive> show tables; ---显示表;
hive> show databases; ---显示数据库,数据库里面有多个表;
hive> use brain; ---使用数据库用 use;然后再使用show tables;查看里面的数据表
hive> show tables;
hive> set hive.cli.print.header=true; ---显示表的headers,即column名;
hive> select * from ttc_show where ttc_show.date_col = 20180601 and ttc_show.app_id = ‘ABCDEFG‘ and ttc_show.alg = ‘["related"]‘ limit 20;
常用sql:
SELECT name,country FROM Websites;
SELECT DISTINCT country FROM Websites; //选取country中去掉重复项的变量
SELECT * FROM Websites WHERE country=‘CN‘; //注意单双引号,from后的地址用双引号,where后的等号用单个等号,文本内容用单引号,数字内容不用引号
Select * from emp where sal > 2000 or comm > 500; //或者用and
Select * from emp where comm is null;
Select * from emp where sal between 1500 and 3000; //数值型,字符型都有between,字符型基于首字母排序
Select * from emp where sal in (5000,3000,1500);
SELECT * FROM Websites WHERE alexa > 15 AND (country=‘CN‘ OR country=‘USA‘);
SELECT * FROM Websites ORDER BY alexa; //按某一列排序,可以按多列排序,多列时先按第一指定列排序,再按第二等等
INSERT INTO Websites (name, url, alexa, country) VALUES (‘百度‘,‘https://www.baidu.com/‘,‘4‘,‘CN‘); //id列不用输入任何字段,他是自动更新的
UPDATE Websites SET alexa=‘5000‘, country=‘USA‘ WHERE name=‘菜鸟教程‘; //更新覆盖数据,执行没有 WHERE 子句的 UPDATE 要慎重,再慎重!!!!没有where会将所有行的这一列修改
DELETE FROM Websites WHERE name=‘百度‘ AND country=‘CN‘;
SELECT * FROM Websites WHERE name LIKE ‘G%‘; //选取以G为开头的模糊查询
SELECT * FROM Websites WHERE name LIKE ‘%k‘; //选取以k为尾的模糊查询
SELECT * FROM Websites WHERE name LIKE ‘%oo%‘; //选取含有oo字符的
SELECT * FROM Websites WHERE name NOT LIKE ‘%oo%‘; //选取不含有oo字符的
select * from username where 用户名 like ‘段_%‘ -- 会查出来段煜 段鑫
‘%a‘ //以a结尾的数 ‘a%‘ //以a开头的数据 ‘%a%‘ //含有a的数 ‘_a_‘ //三位且中间字母是a的
‘_a‘ //两位且结尾字母是a的 ‘a_‘ //两位且开头字母是a的
SELECT * FROM Websites WHERE name REGEXP ‘^[GFs]‘; // 选取 name 以 "G"、"F" 或 "s" 开始的所有网站
SELECT * FROM Websites WHERE name REGEXP ‘^[A-H]‘; //选取 name 以 A 到 H 字母开头的网站
SELECT * FROM Websites WHERE name IN (‘Google‘,‘菜鸟教程‘); // 选取 name 为 "Google" 或 "菜鸟教程" 的所有网站
SELECT * FROM Websites WHERE alexa NOT BETWEEN 1 AND 20;
SELECT column_name(s)
FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name; //选取两个文件中在某一列相匹配的项
LEFT JOIN 和 RIGHT JOIN 存在的意义就是select的时候可能会有左(右)边存在而另一边不存在的特定列,此时将LEFT(RIGHT)的列留下,另一边没有匹配内容的赋值为null即可
注意:搜索时,String只能用单引号,文件名用双引号或不用
常用linux指令:
使用 man 命令来查看各命令的使用文档
u 取消操作
cat 获取文件内容
cat合并文件
$ cat file1.txt file2.txt > file.txt 可以读入任意多个文件
使用>>将文本流将文件添加到另外一个文件的末尾
$ cat file1.txt >> file2.txt
grep 按条件查找搜索,加|与文件隔开
dd 删除
d5d 删除5行
cp dir dir复制文件到新的文件夹
cp -r dir dir 复制文件夹下所有文件到新的目录
mv dir dir 移动文件,并命名为file2
hadoop -put dir1 dir2语句是将dir1上数据put上dir2(hdfs)
查看hadoop上文件,文件内容:
hadoop fs -ls /dir/file
hadoop fs -cat /dir/file | head -10 (file为压缩文件需要解压缩,否则为乱码)
从hdfs上下载文件到本地:-get
Linux中` `、$、$( ) 、${ } 区别:
$( )中放的是命令,相当于` `,例如todaydate=$(date +%Y%m%d)意思是执行date命令,返回执行结果给变量todaydate,也可以写为todaydate=`date +%Y%m%d`;
${ }中放的是变量,例如echo ${PATH}取PATH变量的值并打印,也可以不加括号比如$PATH。
put操作时,指定的文件路径不存在,不会自动创建路径,需要创建路径mkdir;指定路径后,应该是会写入一个文件,而这个文件是不用事先新建的(比如事先新建一个目标.txt文档)
解压文件:tar -cxvf ${date}.tar.gz 文件解压后放当前文件夹,名字和tar文件名字一样
压缩文件:tar -zcvf finalData.tar.gz finalData/
hadoop fs -getmerge 操作只能先放到本地文件夹,然后put上hdfs
查看正在运行的程序:ps -ef | grep ks_collect_data
firedata 30458 88548 0 09:42 pts/10 00:00:00 sh ks_collect_data.sh 20180813 20180826
kill这个任务:$ kill -9 30458
kill在集群上的任务 : hadoop job -kill job_1524660075674
将本服务器文件传到另一个服务器:scp 211.100.28.190:/dir/file /dir 然后需要再输入密码
循环对多个文件夹进行操作:
for file in /home/hustyangju
do
done
ctrl+c 停止运行程序,ctrl+z,任务维持挂起并没有结束,可以使用fg/bg操作继续前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行.
从远程服务器下载文件到本地:sz /dir/file 或者切盘到这个文件夹 sz file 即可
记录日志:/dir/test.sh > /dir/test.log 2>&1 &
nohup java -jar demo2.jar >test.out 2>&1 当账户退出或终端关闭时,程序仍然运行
较大文件,若在远程服务器上交互操作比较麻烦,可以tail -n 10000 file>file_sample 然后sz 这个sample下来在window上操作,将程序调试好再拖入服务器运行
wc :统计指定文件中的字节数、字数、行数,并将结果显示输出。-c 统计字节数;-l 统计行数;-w 统计字数;-m 统计字符数。
组合使用时输出结果的列的顺序和数目不受选项的顺序和数目的影响。输出结果顺序:行数 字数 字节数 文件名
tail -f click 查看是否在写入数据
crontab -l 查看正在运行的定期执行程序; crontab -e 相当于vim,然后编辑即可
du -h filename/ 查看filename文件大小,ll -h 查看文件夹下所有文件的详细信息
表示时间:date=`date -d "+1 day $startdate" +%Y%m%d`
计算机常识:
编码:
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。
ip地址是数字组成的,不方便记忆,所以有了域名,通过域名地址就能找到ip地址
http://zhidao.baidu.com 这是域名,一个ip上可以有多个域名
http://168.103.123.465 这是IP
linux:
SSH是安全外壳协议,为 Secure Shell 的缩写,为远程登录会话和其他网络服务提供安全性的协议。Xshell软件支持ssh协议,允许你远程访问。
git bash是Windows下的命令行工具,方便在windows下使用git命令的模拟终端;git shell是安装了git的shell,bash是shell的一种。
标签:访问 数据库 区别 pen window 数据库数据 bash spl app
原文地址:https://www.cnblogs.com/yuanzhengpeng/p/9900375.html