准备本地文件,一般都是csv文件。

1、注意记下该文件的分隔符;
2、记下该文件字段名称和字段类型,以及字段顺序!!;
3、注意该文件是否有表头,如果有,在下面进行载入空表的时候,表头也会被当做数据传入表中。如果不需要,就把表头去掉,但是注意记下字段顺序;

建表
写好建表的sql文件,假设命名为create_table.sql,内容如下;

--create_table.sql内容如下
CREATE EXTERNAL TABLE IF NOT EXISTS algo_tinyv.sample_data (
user_id STRING COMMENT '用户唯一id',
order_id STRING COMMENT '订单编号'
)--注意字段顺序与上述文件字段的顺序要保持一致!!!!
--PARTITIONED BY(dt STRING) --分区
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' --以逗号作为分隔符
STORED AS TEXTFILE;

运行 hive -f create_table.sql

-f的含义是运行一个sql文件,若运行单个sql语句则是hive -e “select * from table”;

载入本地数据

运行 hive -e "load data local inpath 'sample_data.csv' overwrite into table 库名.表名 PARTITION(dt='字段名')"

1、overwrite的意思是覆盖表algo_tinyv.sample_data中的数据!
2、PARTITION:建一个分区表,如果没有可省略

1.2 新建表,并将hdfs文件上传到该表中(hive-sql模式下)

准备hdfs文件

1、注意记下该文件的分隔符;
2、记下该文件字段名称和字段类型,以及字段顺序!!;
3、注意该文件是否有表头,如果有,在下面进行载入空表的时候,表头也会被当做数据传入表中。如果不需要,就把表头去掉,但是注意记下字段顺序;

建空表并传入数据
hive-sql模式下,运行

use 库名; # 选择数据库
drop table 库名.表名;
create external table if not exists 库名.表名 (
appl_no string COMMENT '订单id',
score string COMMENT '分数'
)--注意字段顺序与上述文件字段的顺序要保持一致!!!!
row format delimited fields terminated by '\t' --设置分隔符
lines terminated by '\n'
stored as textfile
location '/home/workdir/yourHDFSfile; --hdfs文件位置
                    一般建表的时候要建外部表,这样一不小心删除的话,还能够恢复。1、自己设计表结构,然后上传文件到该表中1.1 新建表,并将本地csv文件上传到该表中(Linux命令行模式下)准备本地文件,一般都是csv文件。1、注意记下该文件的分隔符;2、记下该文件字段名称和字段类型,以及字段顺序!!;3、注意该文件是否有表头,如果有,在下面进行载入空表的时候,表头也会被当做数据传入表中。如果不需要,就把表头去掉,但是注意记下字段顺序;建表写好建表的sql文件,假设命名为create_table.sql,
				
1.将Mysql中的数据迁移到Hdfs文件系统中,然后通过Hive加载HDFS文件系统中的数据值 2.将Hive中的数据迁移到指定Mysql数据库中 1.数据迁移的过程中,由于hive的Null值存储为"\N",Mysql存储为NULL值,二者转换时需要注意,再数据迁移json模板中,"nullFormat": "\\N", 该配置信息就是解决了数据迁移是存在的Null值。 2.如果hive中没有数值DataX迁移时会出现异常 执行语句:python /opt/module/datax/bin/datax.py /opt/module/datax/job/xxx.json
学习笔记—Hive创建表 1. Hive语句的特点 HQL 语言大小写不敏感,但内容分大小写(where ,if/ case when,如:数据表内容某人名叫Tom,则条件后不能写tom,HDFS 路径名(NameNode)分大小写) ; HQL 可以写在一行或者多行, 关键字不能被缩写也不能分行,同 SQL; 各子句一般要分行写, 使用缩进提高语句的可读性,为了美化,同SQL; -- 为注释符号 ; Hive 不存储数据,他是表到HDFS文件的映射关系(语句); 2. DDL 2.1 Hive数据库DD
row formate serde ‘org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe’ with serdeproperties(“field.elim”=’|’,“serialization.encoding”=‘GBK’) Location ‘hdfs://nameservice1/warehouse…’ stored as textfile tblpropertie
hive-site.xml当中的一个属性指定的 <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> 创建并指定hdfs存储位置 create database myhive2 location '/myhi
创建表的三种方法 Hive创建表的方式(默认路径/user/hive/warehouse,也可以location指定,主要针对external表) 1、使用create命令创建一个新表,带分区 CREATE TABLE `mydb.dept`( `dept_no` int, `addr` string, `tel` string) partitioned by(dat...
create database if not exists mydb2 [comment 'this is mydb'] [location '/user/hive/mydb.db']; -- 查看数据库 -- 查看所有数据库 show database; -- 查看数据库信息 desc database mydb2; desc database extended mydb2; describe database extended m with open('file_name.txt', 'r') as f: lines = f.readlines() file_line_count = len(lines)# 连接Hive数据表 from pyhive import hive conn = hive.Connection(host="localhost", port=10000, username="hive", database="default")# 计算Hive数据量 query = "SELECT COUNT(*) FROM table_name" cursor = conn.cursor() cursor.execute(query) hive_data_volume = cursor.fetchone()[0]# 比较文件行数与Hive数据量 if file_line_count > hive_data_volume: print("文件行数大于Hive数据量") elif file_line_count < hive_data_volume: print("文件行数小于Hive数据量") else: print("文件行数等于Hive数据量")