shell獲取Hive表字段,轉換一行逗號分隔
阿新 • • 發佈:2018-12-22
在有時候,需要查詢的表字段特別多,但是又不想寫出這些欄位?
使用如下的構建指令碼。
實現了輸出表的所有表頭,並轉換成逗號分隔的模式輸出
#!/bin/sh
. /etc/profile
. ~/.bash_profile
SCRIPT_NAME=$0
echo ${SCRIPT_NAME}
# 從表中獲取所有表頭,形成單行字串,用於構建HBASE中的列
# params table-name(exclude path)
# date 2017-11-15
# author zhangjianfei
# since 1.0.0
# 1. set workdir
WORK_DIR=`dirname ${SCRIPT_NAME} `
echo ${WORK_DIR}
cd ${WORK_DIR}
# 2. args check
if [ $# -eq 1 ]
then
TABLE_NAME=$1
else
echo "the args is wrong ,you should give it like 'dg_user'"
exit 1;
fi
# 3. body
TABLE_SCHEMA_STR=`hive -e "desc $TABLE_NAME" | awk -F '\t' '{print $1,","}' | cat | xargs echo | sed s/[[:space:]]//g | awk '{sub(/.$/,"")}1' `
echo "$TABLE_SCHEMA_STR"
echo "$TABLE_SCHEMA_STR" > $WORK_DIR/tmp_schema.log