1. 程式人生 > >shell獲取Hive表字段,轉換一行逗號分隔

shell獲取Hive表字段,轉換一行逗號分隔

在有時候,需要查詢的表字段特別多,但是又不想寫出這些欄位?
使用如下的構建指令碼。
實現了輸出表的所有表頭,並轉換成逗號分隔的模式輸出

#!/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