Spark

刘超 3天前 ⋅ 4775 阅读   编辑

一、介绍

  1、Spark中的RDD到底是什么

  2、组件介绍

二、版本

  1) spark1.x与2.x对比

  2) spark存在多版本时激活某版本

  3) spark与Scala 有版本对应关系

  3) spark升级

三、Spark命令行

  1、spark-submit命令
  -- 语法
  -- 选项
  -- 需求log日志、jdk、jvmoption、类)
  -- 示例以特定用户提交任务等)
  2、spark-shell命令
  -- 语法
  -- 选项
  -- 命令
  c、spark-sql

四、Spark程序(经验总结

  -- 解决Spark Application jar包冲突

  -- 指定第三方依赖

  1、Spark-Core

    a、Spark RDD算子

  2、Spark-SQL

    a、Dataframe使用

    b、SparkSQL语句

    c、SparkSQL数据类型(Struct、Array、Map)

    d、SparkSQL函数
    -- UDF函数(UDAF)
    -- coalesce与repartition使用

    e、变量
    -- 查看变量类型

    f、计算

    -- 关闭Spark科学计数法(两数相除后,部分结果以科学计算法展示,强转成decimal,保留指定精度)

    g、操作

    -- union:需满足字段个数相同( number of columns)、字段顺序相同(union错行导致数据类型改变)、字段类型相同(union错行导致数据类型改变

四、与其他组件配合

  4.1 外部存储

    4.1.1 hbase

      1、scala spark生成hfile

      项目

      hbase-connectors

    4.1.2、mysql

      1、spark操作mysql

  4.2、字符串

    4.3.1 spark操作JSON
    a、spark使用json字符串创建dataframe
    b、spark row转成json
    c、spark map 转json

    4.4.2 把ip最后一位替换为星号*

    4.5.3 隐藏手机号中间的4位或者只显示末尾四位数

    4.5.4 提取字符串  

  4.3、文件

    4.4.1 spark操作文件

    4.4.2 文件名作为dataframe的一列

    4.4.3 禁止spark生成success文件

    4.4.4 禁止生成元数据文件

      ~ parquet

五、辅助

  5.1、日志
    a、spark-submit
    b、spark-shell

  5.2、使用Arthas连接Spark Executor,以获得jvm信息

  5.3、打印spark应用参数

  5.4、Spark jdbc打印出insert语句

七、疑问

  a、sparksession为啥非得用val声明 ;从语法层面保证有且仅有一个SparkSession实例

八、需求

  a、spark读取不存在的文件返回emptydataframe 还需测试

 

spark在线文档

1、https://endymecy.gitbooks.io/spark-programming-guide-zh-cn/content/


注意:本文归作者所有,未经作者允许,不得转载

全部评论: 0

    我有话说: