hive - 验证Hive HQL语法?

标签 hive amazon-emr

是否有编程方式验证HiveQL语句是否存在诸如基本语法错误之类的错误?我想在将语句发送到Elastic Map Reduce之前检查语句,以节省调试时间。

最佳答案

就在这里!

实际上,这很容易。

脚步:

1.用您的语言获得一个 hive 式储蓄客户端。

我在 ruby 中,所以我使用了这个包装器-https://github.com/forward/rbhive(gem install rbhive)

如果您不是 ruby 用户,则可以下载hive源,并在随附的Thrift配置文件上运行Thrift,以生成大多数语言的客户端代码。

2.在端口10001上连接到Hive并运行一个描述查询

在ruby中,它看起来像这样:

RBHive.connect(host, port) do |connection|
    connection.fetch("describe select * from categories limit 10")
end

如果查询无效,则客户端将引发异常,并详细说明语法无效的原因。如果语法是有效的,Describe将返回一个查询树(在这种情况下可以忽略)

希望能有所帮助。

关于hive - 验证Hive HQL语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8155780/

相关文章:

bash - EMR 笔记本安装额外的库

apache-spark - 如果 emr 上的 Spark 中不存在存储桶,如何阻止创建存储桶

sql - 在 HIVE 的子组中使用排名

performance - 如何使用hadoop mapreduce比较两个大型数据集?

bash - 在crontab中调用时,带有hive命令的shell脚本未将数据写入文件

amazon-web-services - AWS EMR InvalidAuxServiceException : The auxService:mapreduce_shuffle does not exist

hadoop - 在由script-runner.jar运行的aws emr脚本中引用文件

apache-spark - emrfs同步和导入卡住了,无法正常工作

sql - 从 Hive 数组中选择特定值

sql - 向 Hive 表中插入数据