pythonwise / hiveloc

#!/bin/bash
# Show location in HDFS of a Hive table

case $1 in
    -h | --help ) echo "usage: $(basename $0) TABLE"; exit;;
esac

if [ $# -ne 1 ]; then
    $0 -h
    exit 1
fi


# Store stderr to display error
err=$(mktemp)
# Cleanup the error file
trap "rm -f ${err}" EXIT INT

out=$(hive client -S -e "DESCRIBE EXTENDED ${1}" 2>${err})

# Of course hive won't return error to the os, assume empty output is error
if [ -z "${out}" ]; then
    cat ${err}
    exit 1
fi

# We're looking for something like 
# location:hdfs://nameservice1/user/beeswax/warehouse/people,
echo "${out}" | \
    egrep -o 'location:[^,]+' | \
    sed 's/location://'
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.