从hive到r再到bash的数据

tp5buhyn  于 2021-06-27  发布在  Hive
关注(0)|答案(0)|浏览(126)

我正在尝试在中执行配置单元查询 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]是什么意思?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题