将hdfs文件加载入hive表

hive新建了表,location里面有数据,但是select 从表中拿不出数据

1.第一种方法 当存储路径与表所在路径不一致时,可以load进去,如果表中字段类型不对应,该字段的值将会为空

load data inpath 'hdfs://hadoop01:9000/tmp/sales_info.txt' overwrite into table sales_info partition(dt = '20191215');

2.当存储路径与表所在路径一致时,可以采用添加分区的方式

alter table ods_nshop.ods_01_releasedatas add partition (bdp_day='20191215') location 'hdfs://hadoop01:9000/data/nshop/ods/release/bdp_day=20191215'

刷数据

alter table DWD.FIN_REF_ORG_MARKET_TYPE_CANCELLATION_TEMP drop if exists partition(dt='$rptDate');
alter table DWD.FIN_REF_ORG_MARKET_TYPE_CANCELLATION_TEMP add partition (dt='$rptDate') location 'hdfs://yto-develop-bigdata-platform/user/hive/warehouse/td/PT_PDATA/T99_REF_ORG_MARKET_TYPE_CANCELLATION/$rptDate';

补充多天


#! /bin/bash
#起始startdate就是curdate
curdate=$1
enddate=$2

while [ ${curdate} -le ${enddate} ]

do
      #规范化时间
      curdate=`date -d "${curdate}" +%Y%m%d`
      echo "当前脚本执行时间curdate:${curdate}"
      #增加当天partition
      hive -v -e "alter table td.t_stl_exp_transfer_detail add partition (dt='${curdate}') location 'hdfs://yto-develop-bigdata-platform/user/hive/warehouse/td/source/t_stl_exp_transfer_detail/dt=${curdate}'"

      curdate=$(date -d "$curdate+1days" +%Y%m%d)

     echo "下一轮脚本执行时间new_curdate:${curdate}"

done

调用 sh xx,sh 20201012 20201125
 

猜你喜欢

转载自blog.csdn.net/someInNeed/article/details/108995039
今日推荐