先通过一个例子来理解后面分析用到的mysql语法知识,下图第一张表为原表第二张为希望转换成的表,纵横转换语句为第三张图所示
用as语法得到字段(未完待续)
(3)查询数据库(模糊查询)
EXTERNAL:创建一个外部表在建表的同时指定一个指向实际数据的路径(LOCATION),指定表的数据保存在哪里
COMMENT:为表和列添加注释
SORTED BY: 按照字段排序(一般不常用)
(2)创建内部表(3种)
直接建表:使用标准的建表语句;
查询建表法 :通过AS 查询语句完成建表:将子查询的结果存入新表里 ;
like建表法 :根據已经存在的表结构创建表
(3)查询表的类型(若是外部表则显示为EXTERNAL)
实际工作当中使用load的方式来加载数据箌内部表或者外部表 ;
第一种:数据在linux本地磁盘
如:从本地文件系统加载数据到teacher表当中去:
第二种:数据在hdfs上
从hdfs上面加载文件到teacher表里面去 :
(7)内部表与外部表的区别
内部表删除后表的元数据囷真实数据都被删除了;
外部表删除后,仅仅只是把该表的元数据删除了真实数据还在,后期还是可以恢复出来
在hive當中也是支持“分而治之”的思想就是我们可以把大的数据,按照每天或者每小时进行切分成一个个的小的文件,这样去操作小的文件就会容易得多了 即把数据按特定的形式分目录存储在不同的文件夹下。
在文件系统上建立文件夹把表的数据放在不同文件夹下面,加快查询速度
2.创建一个表带多个分区 (分年、月、日三个区)
先通过一个例子来理解后面分析用到的mysql语法知识,下图第一张表为原表第二张为希望转换成的表,纵横转换语句为第三张图所示
用as语法得到字段(未完待续)
isin
返回一个布尔系列因此要选择徝不在 some_values
行,请使用~
取反布尔系列:
如果要包含多个值请将它们放在列表中(或更普遍地说,是任何可迭代的)然后使用isin
:
但是请注意,如果您希望多次执行此操作则首先创建索引,然后使用df.loc
会更有效:
222]给出基于列的值行222
在这种情况下。