专栏首页我是攻城师在scala中使用spark sql解决特定需求

在scala中使用spark sql解决特定需求

Spark sql on hive的一个强大之处就是能够嵌在编程语言内执行,比如在Java或者Scala,Python里面,正是因为这样的特性,使得spark sql开发变得更加有趣。 比如我们想做一个简单的交互式查询,我们可以直接在Linux终端直接执行spark sql查询Hive来分析,也可以开发一个jar来完成特定的任务。

有些时候单纯的使用sql开发可能功能有限,比如我有下面的一个功能:

一张大的hive表里面有许多带有日期的数据,现在一个需求是能够把不同天的数据分离导入到不同天的es索引里面,方便按时间检索,提高检索性能。

有几种方式可以完成:

(1)写一个MapReduce程序,遍历这个表每一条数据,插入到es里面。

(2)使用Hive按日期分区,生成n个日期分区表,再借助es-Hadoop框架,通过shell封装将n个表的数据批量导入到es里面不同的索引里面

(3)使用scala+Spark SQL读取Hive表按日期分组,然后借助es-hadoop框架把每一组的数据导入es里面。

优缺点:

方式一:开发量最大,导入性能最差

方式二:开发量次之,导入性能一般

方式三:开发量小,性能最优

总结分析:

方式一:

直接使用MapReduce读取表数据,然后每一行add一次,插入性能非常低效,有人会说可以批使用list批量插入,但是不要忘记我们现在是每一天的数据插入到不同的索引里面,一个list是不能放不同日期的数据,所以如果想要批量还要维护一个不同日期的list,并放在Map里面,最后提交完清空集合,整体复杂度增加而且维护调试都比较麻烦。

方式二:

直接使用Hive,提前将数据构建成多个分区表,然后借助官方的es-hadoop框架,直接将每一个分区表的数据,导入到对应的索引里面,这种方式直接使用大批量的方式导入,性能比方式一好,但由于Hive生成多个分区表以及导入时还要读取每个分区表的数据涉及的落地IO次数比较多,所以性能一般

方式三:

在scala中使用spark sql操作hive数据,然后分组后取出每一组的数据集合,转化成DataFrame最后借助es-hadoop框架,将每组数据直接批量插入到es里面,注意此种方式对内存依赖比较大,因为最终需要将数据拉回spark的driver端进行插入操作。

关于方式一和方式二就不再细说了,有兴趣的朋友可以自己尝试下,下篇文章会把基于第三种方式实现的例子分享出来,可以直接在spark的local模式下模拟运行。

本文分享自微信公众号 - 我是攻城师(woshigcs),作者:woshigcs

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-07-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 大数据就是这么神奇!

    我是攻城师
  • hadoop常见问题解答

    我是攻城师
  • 简述ElasticSearch里面复杂关系数据的存储方式

    我是攻城师
  • 【案例】光大银行:风险一体化项目实施

    随着大数据和互联网+时代来临,大数据成为商业银行在市场竞争重要手段之一。新的市场和业务变化推动商业银行向智能化转型。银行信用卡中心数据外延大,与个人的结合点多,...

    数据猿
  • 隐私安全计算的认识将永久改变数据的命运

    在大数据时代,基于大数据的应用,给日常生活、经济发展、城市治理等带来了极大的便捷。同时,用户隐私也面临着可能无处不在的“算计”,如何享受数据价值带来的利好并保护...

    用户2908108
  • 你真的需要那么多报表么?

    企业对于数据的重视程度越来越高,很多业务部门也深刻意识到了数据的重要性,希望通过数据挖掘出动态变化,复杂,跨域多渠道的,内外部集成的业务现象背后的逻辑,从而来指...

    凯哥
  • PDFMV框架的D

    PDFMV框架是“问题-数据-特征-模型-价值”英文字母的缩写,是一个闭环的系统,具有持续性迭代优化的功能。

    陆勤_数据人网
  • 中国将成第一大数据资源国;银联家乐福合力开发大数据 | DT数读

    过去一周,国际、国内的大数据相关公司都有哪些值得关注的新闻?数据行业都有哪些新观点和新鲜事?DT君为你盘点解读。

    DT数据侠
  • 华为内部万人分享:5分钟,轻松搞懂大数据

    2013年“大数据”一词火爆IT圈,到底什么是大数据?华为内部认为,海量数据的产生、获取、挖掘及整合,使之展现出巨大的商业价值。   一、详解时髦词汇:大数据...

    CDA数据分析师
  • 大数据24小时 | 三星“跟风”布局人工智能,5亿信息泄露让雅虎深陷“蝴蝶效应”

    <数据猿导读> 物流信息数据服务平台“快金数据”获启赋资本数千万元投资;广发银行推出大数据产品“企业通”;基于大数据的信息技术公司“精标科技”申请新三板挂牌上市...

    数据猿

扫码关注云+社区

领取腾讯云代金券