博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hive sql转spark sql
阅读量:5771 次
发布时间:2019-06-18

本文共 1116 字,大约阅读时间需要 3 分钟。

  hot3.png

hive sql和spark sql,所有的sql语句是通用的,主要是一些属性设置不一样,有些hive里没有,有些spark里面没有,或者有些spark底层实现了相同的功能,只是属性名称不一样了。下面列出一些hive sql转spark sql中一些要注意的问题。

1.启动命令

hive --hiveconf mapred.reduce.tasks=1 -f /home/cdh/cloudera/shells/hive_data_union.sql

spark-sql --conf spark.sql.shuffle.partitions=1 -f /home/cdh/cloudera/shells/hive_data_union.sql

属性设置,hive是--hiveconf,而spark-sql是--conf。注意spark-sql –conf只能设置spark的相关属性,如果想要通过设置自定义属性,还是要用到—hiveconf(spark-sql也有--hiveconf这个选项),例如如下命令:spark-sql --hiveconf year=${year} --hiveconf month=${month} --hiveconf day=${day} --hiveconf hour=${hour} -f ./hour.sql,设置了year,month,day,hour4个属性,在sql文件中和hive一样,使用${hiveconf:year}获得对应的自定义属性值。

2.hive:mapred.reduce.tasks=-1和spark:spark.sql.shuffle.partitions=200

在spark sql命令行中,设置mapred.reduce.tasks其实就是设置spark.sql.shuffle.partitions,他们两个属性是相同的意思,但是如果使用spark-sql --conf mapred.reduce.tasks=1,这样设置就会失败,提示说没有属性mapred.reduce.tasks,所以在spark中,尽量用spark.sql.shuffle.partitions

3.属性在hive中存在,虽然在spark中没有,但是可以使用别的思路实现hive中的功能,在spark中没有的属性如下:

mapred.max.split.size,mapred.min.split.size.per.node,mapred.min.split.size.per.rack

转载于:https://my.oschina.net/cjun/blog/735172

你可能感兴趣的文章
极光推送(一)集成
查看>>
MySQL 8.0 压缩包版安装方法
查看>>
@Transient注解输出空间位置属性
查看>>
Ansible-playbook 条件判断when、pause(学习笔记二十三)
查看>>
5种你未必知道的JavaScript和CSS交互的方法(转发)
查看>>
线程进程间通信机制
查看>>
galera mysql 多主复制启动顺序及命令
查看>>
JS prototype 属性
查看>>
中位数性质——数列各个数到中位数的距离和最小
查看>>
WebApp之Meta标签
查看>>
添加Java文档注释
查看>>
Python3批量爬取网页图片
查看>>
iphone-common-codes-ccteam源代码 CCEncoding.m
查看>>
微信公众平台开发(96) 多个功能整合
查看>>
[转]MVC4项目中验证用户登录一个特性就搞定
查看>>
用Perl编写Apache模块续二 - SVN动态鉴权实现SVNAuth 禅道版
查看>>
Android 阴影,圆形的Button
查看>>
C++概述
查看>>
卡特兰数
查看>>
006_mac osx 应用跨屏幕
查看>>