hive sql转spark sql

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值