Hive操作

  • 数据导入

用Load语句执行数据的导入

LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] 
INTO TABLE tablename[PARTITION (partcol1=val1, partcol2=val2 ...)]

如果包含LOCAL关键字,则复制本地文件系统中的文件到目标表中,如果不包含LOCAL关键字,则移动HDFS文件到目标表中


将本地的student01.txt文件导入到t2表中 在t2创建的时候要指定分隔符为',' 一般情况下txt的分隔符都给定的是逗号
load data local inpath '/usr/local/data/student01.txt' into table t2;
这种方式一次只能导入一个文件 

将/usr/local/data/目录下的所有数据文件导入t2表中,并且覆盖原来的数据。
load data local inpath '/usr/local/data/' overwrite into table t2;

将HDFS中的文件导入
load data inpath '/input/student.txt' overwrite into table t2;


将数据导入分区表partition_table data1.txt data2.txt
load data local inpath '/usr/local/data/data1.txt' into table partition_table partition (gender='M');

使用Sqoop实现数据的导入:导入导出关系型数据库,基于hadoop用MapReduce进行数据的导入和导出。

Hive操作_第1张图片

 Hive操作_第2张图片

  • Hive的数据查询

简单查询

Hive中的大部分select操作会转换成mapreduce任务进行,但select * 语句不会。nvl(..., ...) 将为Null的值转换成其余的值 不能用=null要用is null; distinct去重。 Fetch Task功能?????没有启动mapreduce 在简单查询时非常有用

过滤和排序

Hive的函数

​​​​​​​ 

你可能感兴趣的:(Hive,大数据)