近期致力于总结科研或者工作中用到的主要技术栈,从技术原理到常用语法,这次查缺补漏当作我的小百科。主要技术包括:
- ✅数据库常用:MySQL, Hive SQL, Spark SQL
- ✅大数据处理常用:Pyspark, Pandas
- ⚪ 图像处理常用:OpenCV, matplotlib
- ⚪ 机器学习常用:SciPy, Sklearn
- ⚪ 深度学习常用:Pytorch, numpy
- ⚪ 常用数据结构语法糖:itertools, collections
- ⚪ 常用命令: Shell, Git, Vim
以下整理错误或者缺少的部分欢迎指正!!!
数据库常用:MySQL, HQL, Spark SQL
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
性能对比
| MySQL | Hive SQL | Spark SQL | |
|---|---|---|---|
| 数据存储系统 | 关系型数据库 | 基于Hadoop的数据仓库系统 | 在Spark上构建的分布式计算引擎 |
| 数据处理能力 | 小规模结构化数据 | 大规模非结构化和半结构化数据 | 大规模非结构化和半结构化数据 |
| 执行引擎 | 传统查询优化器和Executor | 将查询转换为MapReduce | Spark引擎 |
| 分布式存储和处理 | × | ✓ | ✓ |
| 实时查询 | ✓ | ×(只能离线分析) | ✓ |
| 可扩展性 | 低 | 高 | 高 |
| 优势 | 管理索引、表分区 | 表分区、分桶、UDF/UDAF | 提供DF接口 |
更详细的介绍:
常用语法
| MySQL | Hive SQL | Spark SQL | |
|---|---|---|---|
| 关系 | 适用大部分MySQL语法 | 兼容hive | |
| DDL(定义) | CREATE DROP ALTER | ✓ | ✓ |
| DML(操作) | INSERT DELETE UPDATE | ✓ | ✓ |
| DQL(查询) | SELECT WHERE | ✓ | ✓ |
| DCL(控制) | GRANT REVOKE | ✓ | ✓ |
| 函数 | nvl(expr1, expr2) |
ifnull(expr1, expr2) |
同hive |
| merge into | 只能使用update/delete/insert代替 | ✓ | ✓ |
| join on关联条件支持不等值连接 | × | × | ✓ |
MYSQL 常用
CREATE/DROP DATABASE/TABLE IF NOT EXISTS db/tab; -- 创建/删除数据库/表
USE db; -- 使用指定数据库
SET SQL_SAFE_UPDATES = 0; -- 关闭安全模式
SHOW DATABASES/TABLES; -- 查询所有数据库/表名;
desc 表名; -- 查询表结构
CREATE TABLE student( -- 列名 数据类型(包括int、double、varchar、date、datetime、timestamp)
id INT primary key auto_increment,
NAME VARCHAR(20) unique,
age INT not NULL,
adress VARCHAR(10) constraint 外键名 foreign key (外键列名) reference 主表名(主表列名),
);
INSERT INTO student VALUES('1','马云','55','男', '杭州', '66'

1万+

被折叠的 条评论
为什么被折叠?



