我使用subprocess在python中运行配置单元命令,但得到的结果是空的。如果我从hivecli运行相同的命令,就会得到结果。
query = "set hive.cli.print.header=true;use mydb;describe table1;"
process = subprocess.Popen( ["ssh", "hadoop" , "hive", "-e", "%r" % query], stdout = subprocess.PIPE, stderr = subprocess.PIPE )
data = [line.split('\t') for line in process.stdout]
cols = list(itertools.chain.from_iterable(data[:1]))
df = pd.DataFrame(data[1:], columns = cols)
print "==>"+df+"<----"
它正在返回空的Dataframe。
请帮帮我
1条答案
按热度按时间ao218c7q1#
myfile是一个tsv文件,您可以使用pandas.read\u csv(sep='\t')并设置sep='\t',您可能需要查找pandas api以了解有关read\u csv()的更多用法。
您应该在17.1.2中查找关于popen对象的subprocess api,它会给您一个关于stdout=pipe的警告。https://docs.python.org/2/library/subprocess.html#frequently-使用的参数