通过hive的desc命令把数据表字段写到文件中,方便外部数据处理。
#!/bin/bash
set -o nounset
if [[ $# -eq 0 ]]; then
echo need at least 1 paramter for hive table name
exit 1
fi
HIVE_HOME=${HIVE_HOME:-/sysdir/hive-0.11}
tablename="$1"
tabledef="stdin : "
seperator=""
${HIVE_HOME}/bin/hive -e "desc ${tablename}" | awk '{print $1}' > gentabledeftemp.txt
while read fieldline
do
tabledef="${tabledef}""${seperator}""${fieldline}"
seperator=","
#echo "${tabledef}"
done < gentabledeftemp.txt
echo "${tabledef}"
while [[ $# -gt 0 ]]
do
tablename="$1"
tabledef="${tablename} : "
seperator=""
${HIVE_HOME}/bin/hive -e "desc ${tablename}" | awk '{print $1}' > gentabledeftemp.txt
while read fieldline
do
tabledef="${tabledef}""${seperator}""${fieldline}"
seperator=","
#echo "${tabledef}"
done < gentabledeftemp.txt
echo "${tabledef}"
shift
done
rm gentabledeftemp.txt