大数据 - spark-sql 常用命令
--spark启动
spark-sql

--退出
spark-sql> quit; --退出spark-sql

or
spark-sql> exit;

1、查看已有的database
show databases;
--切换数据库
use databaseName;
2、创建数据库
create database myDatabase;
3、登录数据库myDatabase;
use myDatabase
4、查看已有的table
show tables; -- 查看所有表
show tables 'KHDX'; -- 支持模糊查询,表名包含KHDX
5、创建表
--建表:
create table tab_test(
name string,
age int,
num1 double,
num2 bigint,
msg varchar(80) --最后一个字段后面不能有 ',' 号
)
partitioned by (p_age int,p_name string) --分区信息
row format delimited fields terminated by ',' --数据中,属性间用逗号分隔
stored as textfile location '/tab/test/tab_test'; --保存路径,最后也可带'/' 即写成 '/tab/test/tab_test/' -- stored as orc ;orc类型的表,手动推数据(txt / csv 文件;无需表头,行尾无需',',数据文件保存为unix utf-8 无bom格式)不行;
--可以借助textfile类型的临时表插入数据;插入时,要注意字段顺序对应一致。
--指定分区,追加插入;最好不要用 'seletc * ' 表字段变化时,*指代的内容不一样
insert into table tab_test_orc partition(p_age=10,p_name='lucy') select name,age,num1,num2,msg from tab_test_temp;
--指定分区,覆盖插入
insert overwrite table tab_test_orc partition(p_age=10,p_name='lucy') select name,age,num1,num2,msg from tab_test_temp;
6、显示表结构
desc khdx_hy; -- 显示表khdx_hy的表结构
desc formatted khdx_hy; -- 格式化表khdx_hy的表结构信息,信息更详细,包括在hdfs的存储位置
show partitions khdx_hy; -- 显示表khdx_hy的分区信息
show create table khdx_hy; -- 查看建表语句
7、修改表结构
alter table myDatabase.nbzz_ckmxz add partition(tjrq='')add partition(tjrq='') -- 手动给分区表增加2个分区
alter table myDatabase.nbzz_ckmxz drop if exists partition (tjrq=''); -- 手动删除分区表某个分区
alter table myDatabase.nbzz_ckmxz add columns (fh string); -- 追加字段
alter table myDatabase.nbzz_ckmxz change hydh hydh1 string; -- 修改字段hydh名称为hydh1,类型为string drop table myDatabase.nbzz_ckmxz; -- 删除表
alter table myDatabase.tmp_nbzz_ckmxz rename to myDatabase.nbzz_ckmxz; -- 重命名表
--删表中数据:
truncate table tab_test; --执行后,分区依然存在
truncate table tab_test partition(p_age=10,p_name='Tom'); --删除某分区
8、操作表
select * from myDatabase.khdx_hy order by hydh limit 10; -- 查询表,显示前10条记录。
truncate table khdx_hy; -- 清空表数据
insert overwrite table myDatabase.tmp_khdx_hy select * from myDatabase.khdx_hy; -- 用khdx_hy的数据覆盖tmp_khdx_hy数据;
insert into myDatabase.tmp_khdx_hy select * from myDatabase.khdx_hy; -- 用khdx_hy的数据追加tmp_khdx_hy数据中,不覆盖原来数据。
load data local inpath '/home/myDatabase/data/org_info.txt' overwrite into table myDatabase.org_info ; -- 从文件中导入数据到表中
load data local inpath '/home/myDatabase/data/t_ma_fct_etl_acct_liyang_20171231.dat' overwrite into table myDatabase.T_MA_FCT_ETL_ACCT partition(tjrq="20171231");
-- 从文件导入数据至表的某个分区。
insert overwrite local directory '/home/myDatabase/data/khdx_hy.txt' row format delimited fields terminated by '\t' select * FROM myDatabase.KHDX_HY;
-- 从表khdx_hy导出数据至本地文件khdx_hy.txt
9、分区操作
--增加分区:
更完善写法: alter table tab_test add if not exists partition(p_age=11,p_name="Tom"); alter table tab_test add partition(p_age=10,p_name='Tom'); --需要指定所有的分区,不能只是p_age或p_name;否则org.apache.spark.sql.execution.QueryExecutionException:doesn't contain all (2) partition columns
--查看分区: show partitions tab_test;
0: jdbc:hive2://vmax32:18000> show partitions tab_test;
+----------------------+ | result | +----------------------+ |
p_age=10/p_name=Tom | +----------------------+ 1 row selected (0.083 seconds)
--删除分区
alter table tab_test drop if exists partition(p_age=10);
--删除分区时,可以只指定局部
alter table tab_test drop partition(p_name='Tom');
--只执行该条语句,p_age=10分区连同一起被删掉,show partitions 结果为空;hdfs dfs -ls 也看不到 p_age=10的分区 alter table tab_test add partition(p_age=10,p_name='cat');
--只drop p_name='Tome', p_name='cat' 的分区还存在,show partitions 可以查到 --动态分区;动态分区匹配最后选出的字段;只与字段顺序有关系,与名字无关;同时存在静态和动态分区,动态分区必须在静态分区之后
insert into table tab_test(p_age,p_name)
select name,
age,
num1,
num2,
msg,
age as pppp_age, --取不取别名都可以;分区需要出现在select出来的字段的最后位置,为了匹配。
name as p_name --写个对应的别名,看上去好理解一点
from tab_test_temp;
大数据 - spark-sql 常用命令的更多相关文章
- 以慕课网日志分析为例-进入大数据Spark SQL的世界
下载地址.请联系群主 第1章 初探大数据 本章将介绍为什么要学习大数据.如何学好大数据.如何快速转型大数据岗位.本项目实战课程的内容安排.本项目实战课程的前置内容介绍.开发环境介绍.同时为大家介绍项目 ...
- 【慕课网实战】九、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
即席查询普通查询 Load Data1) RDD DataFrame/Dataset2) Local Cloud(HDFS/S3) 将数据加载成RDDval masterLog = sc.textFi ...
- 【慕课网实战】一、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
课程整套CDH相关的软件下载地址:http://archive.cloudera.com/cdh5/cdh/5/ cdh-5.7.0 生产或者测试环境选择对应CDH版本时,一定要采用尾号是一样的版本 ...
- 以某课网日志分析为例 进入大数据 Spark SQL 的世界
第1章 初探大数据 本章将介绍为什么要学习大数据.如何学好大数据.如何快速转型大数据岗位.本项目实战课程的内容安排.本项目实战课程的前置内容介绍.开发环境介绍.同时为大家介绍项目中涉及的Hadoop. ...
- 【慕课网实战】八、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
用户行为日志:用户每次访问网站时所有的行为数据(访问.浏览.搜索.点击...) 用户行为轨迹.流量日志 日志数据内容: 1)访问的系统属性: 操作系统.浏览器等等 2)访问特征:点击的ur ...
- 【慕课网实战】七、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
用户: 方便快速从不同的数据源(json.parquet.rdbms),经过混合处理(json join parquet), 再将处理结果以特定的格式(json.parquet)写回到 ...
- 【慕课网实战】四、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
文本文件进行统计分析:id, name, age, city1001,zhangsan,45,beijing1002,lisi,35,shanghai1003,wangwu,29,tianjin... ...
- 【慕课网实战】六、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
DataFrame它不是Spark SQL提出的,而是早起在R.Pandas语言就已经有了的. A Dataset is a distributed collection of data:分布式的 ...
- 【慕课网实战】五、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
提交Spark Application到环境中运行spark-submit \--name SQLContextApp \--class com.imooc.spark.SQLContextApp \ ...
- 【慕课网实战】三、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
前置要求: 1)Building Spark using Maven requires Maven 3.3.9 or newer and Java 7+ 2)export MAVEN_OPTS=&qu ...
随机推荐
- SQL语句的优化方法
减少对数据库的查询次数 尽量使用相同的或非常类似的SQL语句进行查询 避免不带任何条件的SQL语句的执行 sql语句用大写 别名的使用(1.5倍)
- Win7的话,可能有十种简单的方法进行提速呢
1.窗口转换更快速 Windows7绚丽的效果的确美观,但漂亮的效果就需要拿速度来交换,因此如果你想要Windows7中的各个窗口切换得更快速,那关闭窗口最大.最小化的动画效果后,你会发现窗口切换得更 ...
- shell &&,||,()
做个笔记. 1. linux命令返回值介绍 shell 在执行某个命令时,会有一个返回值,该值保存在shell变量$?中.当$?为0时,表示命令执行成功:当$?为1时,表示命令执行失败. 2. &am ...
- XcodeProj,使用Ruby更改工程文件
利用xcodeproj修改xcode工程文件 一,Ruby基础 Ruby迭代器each.map.collect.inject each——连续访问集合的所有元素collect—-从集合中获得各个元素传 ...
- Icons - Material Design各种ICON图标大全
Icons - Material Design https://material.io/tools/icons/?icon=account_balance&style=baseline
- ZOJ 3593 One Person Game(ExGcd + 最优解)题解
思路:题意转化为求 (ax+by=dis) || (ax+cy=dis) || (bx+cy=dis) 三个式子有解时的最小|x| + |y|.显然求解特解x,y直接用扩展欧几里得,那么怎么求|x| ...
- FastQC结果详解
REF https://www.plob.org/article/5987.html 解压后,查看html格式的结果报告.结果分为如下几项: 结果分为绿色的"PASS",黄色的&q ...
- LuoguP2398 GCD SUM
题目地址 题目链接 题目描述 for i=1 to n for j=1 to n sum+=gcd(i,j) 给出n求sum. gcd(x,y)表示x,y的最大公约数. 输入输出格式 输入格式: n ...
- 解决Android Studio No cached version of org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.50 available for offline mode.
打开 file --> Settings... --> Build,Execution,Deployment下点击 Gradle 在Global Gradle settings 处 取消勾 ...
- center os
CentOS.Ubuntu.Debian三个linux比较异同 Center OS 7 安装 $$ center os 安装mysql5.6 Linux学习之Center os网络配置 Cent Os ...