当前位置: 首页 > news >正文

建设营销型网站广州东莞房价将暴跌

建设营销型网站广州,东莞房价将暴跌,个人网站备案地址选择,北京互联网公司招聘1. 背景 spark默认的jdbc只会用单task读取数据#xff0c;读取大数据量时#xff0c;效率低。 2. 解决方案 根据分区字段#xff0c;如日期进行划分#xff0c;增加task数量提升效率。 /*** 返回每个task按时间段划分的过滤语句* param startDate* param endDate* param …1. 背景 spark默认的jdbc只会用单task读取数据读取大数据量时效率低。 2. 解决方案 根据分区字段如日期进行划分增加task数量提升效率。 /*** 返回每个task按时间段划分的过滤语句* param startDate* param endDate* param threadCount* return*/def getPredicateDates(startDate: String, endDate: String, threadCount: Int): Array[String] {getPredicates(startDate, endDate, threadCount).map(xsrecordDate${x._1} and recordDate ${x._2})}/*** 将startDate到endDate间的日期根据给定的threadCount参数做时间段划分例如* getPredicates(2017-01-01, 2017-01-31, 10)* 返回* 2017-01-01 - 2017-01-04* 2017-01-05 - 2017-01-08* 2017-01-09 - 2017-01-12* 2017-01-13 - 2017-01-16* 2017-01-17 - 2017-01-20* 2017-01-21 - 2017-01-24* 2017-01-25 - 2017-01-28* 2017-01-29 - 2017-01-31** param startDate 开始日期* param endDate 结束日期* param threadCount 线程数* return 包含各个连续时段的数组*/def getPredicates(startDate: String, endDate: String, threadCount: Int): Array[(String, String)] {val dayDiff DateTimeUtils.rangeDay(startDate, endDate)val buff new ArrayBuffer[(String, String)]()if (dayDiff threadCount) {//天数差小于期望的线程数则按照每天一个线程处理var tempDate startDatewhile (tempDate endDate) {buff (tempDate - tempDate)tempDate DateTimeUtils.dateAddOne(tempDate)}} else {//天数差大于期望的线程数则按照线程数对时间段切分val offset (dayDiff / threadCount).toIntvar tempDate startDatewhile (DateTimeUtils.dateAddN(tempDate, offset) endDate) {buff (tempDate - DateTimeUtils.dateAddN(tempDate, offset))tempDate DateTimeUtils.dateAddOne(DateTimeUtils.dateAddN(tempDate, offset))}if (tempDate ! endDate) {buff (tempDate - endDate)}}buff.toArray} DateTimeUtils工具类 import java.text.SimpleDateFormat import java.util.{Calendar, Date, Locale}object DateTimeUtils {def rangeDay(startDateStr: String, endDateStr: String): Long {val dateFormat: SimpleDateFormat new SimpleDateFormat(yyyy-MM-dd)val startDate: Date dateFormat.parse(startDateStr)val endDate: Date dateFormat.parse(endDateStr)(endDate.getTime() - startDate.getTime()) / 1000 / 60 / 60 / 24}def dateAddOne(dateStr: String): String {var dateFormat: SimpleDateFormat new SimpleDateFormat(yyyy-MM-dd)var dateInfo: Date dateFormat.parse(dateStr)var cal: Calendar Calendar.getInstance()cal.setTime(dateInfo)cal.add(Calendar.DATE, 1)dateFormat.format(cal.getTime)}def dateAddN(dateStr: String, value: Int): String {var dateFormat: SimpleDateFormat new SimpleDateFormat(yyyy-MM-dd)var dateInfo: Date dateFormat.parse(dateStr)var cal: Calendar Calendar.getInstance()cal.setTime(dateInfo)cal.add(Calendar.DATE, value)dateFormat.format(cal.getTime)} } 举例 val startDate DateTimeUtils.dateAddN(calcDate,-365) //获取计算日期一年前的日期作为开始时间val predicates getPredicateDates(startDate,calcDate,12) //分12个task读取提高性能val url PropUtils.getProxyJdbc() //jdbc连接的代理需按自己的项目实现val res spark.read.jdbc(url, tableName, predicates,PropUtils.getProperties()) 3. 实验及结论 使用1个节点 8核16G的Clickhouse数据库spark从clickhouse读取近4亿行数据。 单Task运行时间14min 按日期划分成12个Task运行时间1.6min 结论性能提升88.6%
http://www.hkea.cn/news/14258860/

相关文章:

  • 济南哪家公司可以做网站手机端模板网站
  • 德州力点科技 网站建设山东省双体系建设网站
  • 建设一个网站需要哪些功能建旅游网站的意义
  • 做租人网站犯法吗郑州网站建设msgg
  • 苏州淘宝网站建设网站规划与建设需求分析
  • 电子商务网站建设的评估工具WordPress导航菜单不显示
  • 北京东方华美建设集团有限公司网站qq旧版本大全官方下载
  • 企业内网 网站建设的解决方案外贸公司建网站一般多少钱
  • 门户网站建设软件合肥网站制作哪家强
  • 做企业网站需要买什么资料佛山网站制作公司
  • 企业网站首页布局尺寸app制作公司深圳
  • 国内规模大的建站公司网站开发设计参考文献
  • 电子商务网站建设与管理心得wordpress导入demo数据库
  • 怎样查找网站域名归属统计助手小程序怎么制作
  • 网页上传 网站17zwd一起做网站官网
  • 蓝海网站建设游戏介绍网站模板下载
  • 盐城市滨海县建设局网站网络营销广告案例
  • 什么是域名系统 网站建设教程wordpress更新文章收录
  • 百度网站首页国内crm系统
  • 爱站网seo工具查询魔兽做宏网站
  • 网站如何增加增删查改怎么做Pk10网站建设多少钱
  • 公司网站建设需推广网站统计系统 怎么做
  • 网站开发工作室 建设 方案wordpress使用
  • tp框架做购物网站开发如何组建网站开发团队
  • 网站建设行业的分析怎么在百度上做广告
  • 集团网站建设特色宝塔面板做网站
  • 漂亮的蓝色网站html免费素材
  • 专业长沙做网站公司游戏开发与网站开发哪个难
  • 网站前台维护俄罗斯乌克兰战争最新消息
  • 个人网站建设目标在线制作图片小视频