我正在尝试在中执行配置单元查询 R
使用 system
命令。这个r函数是从 Bash
脚本。
r代码
hivedata<-function(query)
{
data <- system(paste0("hive -S -e ", query), wait = TRUE,intern=TRUE)
if (identical(data, character(0))){data=NULL}
message("return value:")
message(data)
message("return value type:")
message(class(data))
return(cat(data))
}
if (length(query)>0 && is.na(query)==FALSE){
data=hivedata(query)
print(data)
}
bash函数
gethivedata(){
set -f #disable aterisk in sql getting expanded as filenames
query=$1
data=`Rscript hivedata.r "'$query'"`
echo $data
}
bash中的函数调用
totalcount=$(gethivedata " select count(*) from hivedb.hivetable ")
输出
[usr@host dir]$ totalcount=$(execute_sql " select count(*) from
hivedb.hivetable ")
return value:
0
return value type:
character
-------------------------------
[usr@host dir]$ echo $totalcount
0NULL
什么时候 cat
如果不使用,则输出值如下 [1]"0"
. 因为r也返回索引和输出。什么时候 cat
则输出变为 0NULL
. 我只需要实际值“0”
在r命令行上执行的任何命令的输出中,[1]是什么意思?
暂无答案!
目前还没有任何答案,快来回答吧!