Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
K
kb
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 2
    • Issues 2
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • Operations
    • Operations
    • Incidents
  • Analytics
    • Analytics
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • granite
  • kb
  • Wiki
    • Knowledge_share
  • Spark简单使用心得

Last edited by 王鹏举 Mar 11, 2022
Page history

Spark简单使用心得

Spark简单使用心得

  • Spark SQL

开发环境

  • IDEA
    • Scala插件
  • sbt
    • sbt-assembly插件

id关联库项目中用Spark干了什么

  1. 融合
    • qcc源库中有人的pid和公司的fid
    • 在tb_person表中保存(pid, ppid)的关系
    • 在tb_company表中保存(fid, digest)的关系
    • 在融合库中,保存人企关系,里面保存人的ppid和公司的digest
    • 读5个亿级别大表(数据量7亿),写4亿数据,关联8次,排序3次,25分钟
    • 之后load data进数据库
  2. 事后检测/修复
    • 数据融合时,检测是否所有的pid都能关联到ppid
    • 筛选错误数据,快速确定数据量,导出爬虫任务重新采集
    • 筛选关联库较工商库少的数据,导出爬虫任务
  3. 统计
    • 将digest与hudi表进行关联,统计不同企业类型不同经营状态的数量,Spark直接将统计数据写入数据库(因为数据量小所以可以直接写)
  4. 交互式分析数据

概念理解

Spark Application

RDD

  • RDD
    • partitions
    • partitioner
    • dependencies
    • compute
    • preferredLocations
  • transform, action
  • 早期API
  • 处理非结构化数据

DataFrame/Dataset

  • RDD提供的算子太抽象,难以优化
  • DataFrame 即 Dataset[Row]
  • 带schema,甚至推断schema,可以优化 (Tungsten)
  • DataSet提供DSL算子,可以优化 (Catalyst)
    • select
    • where
    • $
    • +
    • >
    • ...

使用心得

  • 能配置化的东西配置化 (pureconfig)
  • 多使用Dataset的DSL方法,而非SQL语句

参考

  • Scala
  • sbt
  • SparkSQLExample
  • A Tale of Three Apache Spark APIs: RDDs vs DataFrames and Datasets
  • Spark Datasets are not as type-safe as you think
Clone repository
  • README
  • basic_guidelines
  • basic_guidelines
    • basic_guidelines
    • dev_guide
    • project_build
    • 开发流程
  • best_practice
  • best_practice
    • AlterTable
    • RDS
    • azkaban
    • create_table
    • design
    • elasticsearch
    • elasticsearch
      • ES运维
    • logstash
View All Pages