和一些常用操作
建表语句
CREATE TABLE app.app_o2o_product_detail(
`spu_id` bigint COMMENT 'spu_id'
,`spu_name` int COMMENT 'spu_name'
,`spu_status` string COMMENT 'spu上下架状态'
,`vendor_id` bigint COMMENT '商家id'
)COMMENT '商品明细'
PARTITIONED BY (`dt` string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' NULL DEFINED AS '' stored AS orc TBLPROPERTIES
('orc.compress' = 'SNAPPY');
新增字段
alter table app.app_o2o_product_detail add columns(vender_name string comment '商家名称');
新增多个字段
alter table app.app_o2o_product_detail add columns(
sku_status_desc string comment 'sku状态描述'
,sku_status int comment 'sku状态'
);
如果hdfs上已有数据文件,文件格式为txt,数据列分隔符为^,行之前分隔用换行,建表如下
drop table app.app_o2o_product_log--删除表
CREATE TABLE `app.app_o2o_product_log`( --建表
`language_site` string COMMENT '语言',
`env` string COMMENT 'env',
`app_code` string COMMENT 'app_code',
`source` string COMMENT 'source',
`ext` string COMMENT '扩展信息'
)COMMENT '商品日志表'
PARTITIONED BY (`dt` string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '^'
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
;
表有了,数据也有了,但是查不到数据
需要进行分区修复
MSCK REPAIR TABLE app.app_o2o_product_log;
附一些hdfs常用操作
查看文件夹文件列表:hadoop fs -ls hdfs://ns1/user/app_o2o_product_log/dt=2022-09-01;
查看文件前100行:hadoop fs -cat hdfs://ns1/user/app_o2o_product_log/dt=2022-09-01/17-30-0-1662777244649-1611799990.lzo | head -100
copy文件夹下全部文件到另一个目录下(目录要先存在,不然会报错):hadoop fs -cp hdfs://ns1/user/app_o2o_product_log/* hdfs://ns1/user/app_o2o_product_log
查看文件大小:查看文件大小:hdfs dfs -du -s -h hdfs://ns1/tmp/hive_hive_2022-08-03_09-03-24_049_7069619530002188799-1
上传本地文件到hdfs:hadoop fs -put ./date_2022.txt hdfs://ns1/user/app.db/dim_o2o_calendar_2022