# sparkrule **Repository Path**: tsaizz/sparkrule ## Basic Information - **Project Name**: sparkrule - **Description**: No description available - **Primary Language**: Scala - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-05-08 - **Last Updated**: 2022-05-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # sparkrule #### 介绍 {**以下是 Gitee 平台说明,您可以替换此简介** Gitee 是 OSCHINA 推出的基于 Git 的代码托管平台(同时支持 SVN)。专为开发者提供稳定、高效、安全的云端软件开发协作平台 无论是个人、团队、或是企业,都能够用 Gitee 实现代码托管、项目管理、协作开发。企业项目请看 [https://gitee.com/enterprises](https://gitee.com/enterprises)} #### 软件架构 软件架构说明 #### 作业一 作业一 为 Spark SQL 添加一条自定义命令 SHOW VERSION; 显示当前 Spark 版本和 Java 版本。 #### 作业二 作业二:构建 SQL 满足如下要求 通过 set spark.sql.planChangeLog.level=WARN,查看: 构建一条 SQL,同时 apply 下面三条优化规则: CombineFilters CollapseProject BooleanSimplification 构建一条 SQL,同时 apply 下面五条优化规则: ConstantFolding PushDownPredicates ReplaceDistinctWithAggregate ReplaceExceptWithAntiJoin FoldablePropagation #### 作业三 作业三:实现自定义优化规则(静默规则) 第一步:实现自定义规则 (静默规则,通过 set spark.sql.planChangeLog.level=WARN,确认执行到就行) ``` case class MyPushDown(spark: SparkSession) extends Rule[LogicalPlan] { def apply(plan: LogicalPlan): LogicalPlan = plan transform { .... } } ``` 第二步:创建自己的 Extension 并注入` #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)