美文网首页
开发过程中需要考虑的要点

开发过程中需要考虑的要点

作者: juice_1d28 | 来源:发表于2020-11-28 18:22 被阅读0次

1.第三方库不能和spark混在一起,原因有以下:

避免包冲突

避免spark升级时jar包造成困扰

避免很多依赖包都要用setJars

采用配置driver和excuter第三方库路径的方式:

spark.executor.extraClassPath /home/hadoop/SW/extra-libs/*

spark.driver.extraClassPath      /home/hadoop/SW/extra-libs/*

2.ETL 抽取大表时性能问题:

Spark读取关系型数据库,官方有API接口,如下:

    ①、SparkSession.read.jdbc(url, table, properties),默认只有一个分区,当表很大时性能很差并且会oom

    ②、SparkSession.read.jdbc(url, table, columnName, lowerBound, upperBound, numPartitions, connectionProperties),需要指定分区字段和分区上下限,但对于客户的数据库,我们很多时候是很难掌控的这么详细,谁知道该用哪个字段做分区呢?

    ③、SparkSession.read.jdbc(url, table, predicates, connectionProperties) ,指定(分页)条件来分区,这个最为通用,对于像mysql非常好处理,因为mysql可以借助limit来实现分页,但oracle就很麻烦,通用的分页rownum需要嵌套才可以用,即便加了嵌套也无法完全用该方法实现,所以采用类似:

val tabSql=s"(SELECT * FROM (SELECT T.*, ROWNUM RN FROM (SELECT * FROM ${inputTableName}) T WHERE ROWNUM <= 20) WHERE RN >= 11)" 的方式来作为一张表,调用第一个api,默认一个分区,最终将所有df 进行合并来达到并行抽取的目标。

参考链接:

spark 抽取mysql 大数据量接口api

spark 读取mysql大表的性能问题

oracle rownum 用法和性能问题

spark 学习网站

spark超全性能优化总结

相关文章

  • 开发过程中需要考虑的要点

    1.第三方库不能和spark混在一起,原因有以下: 避免包冲突 避免spark升级时jar包造成困扰 避免很多依赖...

  • 一行代码修改所有点击效果

    需求 开发过程中,没有说所有的ImageView需要点击效果(点击的时候缩放一下),项目完成提交测试。又说需要效果...

  • Android Studio 的 build 过程

    我们知道,在 Android 项目的开发过程中,只需要点一下 Android Studio 的运行按钮(没错,就是...

  • Mac模拟慢速网络- Network Link Conditio

    我们在开发APP的时候,有时候需要考虑一些弱网的环境。作为开发者,在开发项目过程中,我们也需要进行对于网络环境的调...

  • 前端开发过程中有哪些问题需要考虑?

    前端开发过程中有哪些问题需要考虑? 组件库 模块化 前端业务团队 做的事情沉淀组件库 团队基础沉淀模块化 开发...

  • 应用防护代码注入

    在应用开发过程中,我们不仅仅需要完成正常的业务逻辑,考虑应用性能、代码健壮相关的问题,我们有时还需要考虑到应用安全...

  • iOS应用代码注入防护

    在应用开发过程中,我们不仅仅需要完成正常的业务逻辑,考虑应用性能、代码健壮相关的问题,我们有时还需要考虑到应用安全...

  • iOS应用代码注入防护

    在应用开发过程中,我们不仅仅需要完成正常的业务逻辑,考虑应用性能、代码健壮相关的问题,我们有时还需要考虑到应用安全...

  • 摆盘需要考虑的几个要点

    很多朋友说喜欢我的摆盘,问我去哪里可以学?我不知道哪里可以学,我是自己慢慢去领悟的^_^ 今天主要想和大家分享一下...

  • iOS 开发tableView刷新某一个区的时候改变conten

    tableView刷新某一个区的时候改变contentOffSet的问题 1.iOS开发过程中需要点击按钮刷新某一...

网友评论

      本文标题:开发过程中需要考虑的要点

      本文链接:https://www.haomeiwen.com/subject/rynqwktx.html