2
我试图通过Hive使用DESCRIBE函数将每个表的列描述输出到单个文件。我发现-f选项,这样我就可以从文件中读取和写入输出退了出来:运行多个配置单元查询并将输出写入文件
hive -f nameOfSqlQueryFile.sql > out.txt
不过,如果我打开输出文件,它抛出所有的描述背靠背目前还不清楚其中一个描述从一个表开始并结束。
所以,我试图使使用-e一一描述每个表的一个批处理文件,并输出到一个文件:
#!/bin/bash
nameArr=($(hive -e 'show tables;'))
count=0
for i in "${nameArr[@]}"
do
echo 'Working on table('$count'): '$i
hive -e 'describe '$i > $i'_.txt';
count=$(($count+1))
done
然而,因为这需要重新对每个查询,这是处理数百个查询需要数小时,速度非常缓慢。
有没有人有一个想法,我怎么可能运行这些DESCRIBE函数,并理想地输出到单独的文件?
如果你只在表定义兴趣,而不是数据,你可能有一些运气直接进入Metastore。根据您的metastore,您可能会直接获取东西(mySQL),或者我听说有一个用于Metastore的Java API。 – LiMuBei