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

网站建设计划书范本网站建设项目验收表

网站建设计划书范本,网站建设项目验收表,代理注册公司的风险,如何在百度发广告Spark自定义函数 spark 中的 UDF (UserDefinedFunction) 大家都不会陌生, UDF 其实就是将一个普通的函数, 包装为可以按 “行“ 操作的函数, 用来处理 DataFrame 中指定的 Columns. 例如, 对某一列的所有元素进行 1 操作, 它对应 mapreduce 操作中的 map 操作. 这种操作有的主…Spark自定义函数 spark 中的 UDF (UserDefinedFunction) 大家都不会陌生, UDF 其实就是将一个普通的函数, 包装为可以按 “行“ 操作的函数, 用来处理 DataFrame 中指定的 Columns. 例如, 对某一列的所有元素进行 1 操作, 它对应 mapreduce 操作中的 map 操作. 这种操作有的主要特点是: 行与行之间的操作是 独立 的, 可以非常方便的 并行计算 每一行的操作完成后, map 的任务就完成了, 直接将结果返回就行, 它是一种”无状态的“ 但是 UDAF (UserDefinedAggregateFunction) 则不同, 由于存在聚合 (Aggregate) 操作, 它对应 mapreduce 操作中的 reduce 操作. SparkSQL中有很多现成的聚合函数, 常用的 sum, count, avg 等等都是. 这种操作的主要特点是: 每一轮 reduce 之间可以是并行, 但是多轮 reduce 的执行是 串行 的, 下一轮依靠前一轮的结果, 它是一种“有状态的”, 需要记录中间的计算结果 import org.apache.commons.lang3.StringUtils import org.apache.spark.sql.{SparkSession, functions} import org.apache.spark.sql.expressions.UserDefinedFunctionimport java.utilobject udf_manage {val spark: SparkSession SparkUtils.getBuilder.getOrCreate()/*** dt yyyy-MM-dd*/val getQuarterMapFunction: UserDefinedFunction spark.udf.register(getQuarterFunction,(dt: String) {StringUtil.assertNotBlank(dt, dt is empty!!!)val month dt.split(-)(1)month match {case 01 | 02 | 03 1case 04 | 05 | 06 2case 07 | 08 | 09 3case 10 | 11 | 12 4case _ throw new RuntimeException(s不支持的日期:$dt)}})/*** yyyy-MM-dd HH:mm:ss*/val getDtMapFunction: UserDefinedFunction spark.udf.register(getDtMapFunction, (acquisitionTime: String) {val dt acquisitionTime.split( )(0)dt})val getDhMapFunction: UserDefinedFunction spark.udf.register(getDhMapFunction, (acquisitionTime: String) {val dh acquisitionTime.split( )(1).split(:)(0)dh})val getDmMapFunction: UserDefinedFunction spark.udf.register(getDmMapFunction, (acquisitionTime: String) {val dm acquisitionTime.split( )(1).split(:)(1).toIntif (dm 0 dm 15) {00} else if (dm 15 dm 30) {15} else if (dm 30 dm 45) {30} else {45}})val nullMapFunction: UserDefinedFunction spark.udf.register(nullMapFunction,(str: String) {val r str match {case null | NULLcase _ str}r})val natureMapFunction: UserDefinedFunction spark.udf.register(natureMapFunction,(project_nature: String) {val r project_nature match {case 366 | 368 | 385 | 386 project_naturecase _ 378}r})val monthMapFunction: UserDefinedFunction spark.udf.register(monthMapFunction, (cost_month: String, default: String) {//202305if (StringUtils.isNotBlank(cost_month) cost_month.length 6) {val year cost_month.substring(0, 4)val month cost_month.substring(4)s$year-$month-01} else {default}})/*** a,b,c,c,d* 这类以,进行拼接的string的去重计数*/val idsCntsUDF: UserDefinedFunction spark.udf.register(idsCntsUDF,(ids: String) {val set new util.HashSet[String]()if (null ! ids) {ids.split(,).foreach(e {if (StringUtils.isNotBlank(e)) {set.add(e)}})}set.size()})val avgScoreUDF: UserDefinedFunction spark.udf.register(avgScore,(language: Double, math: Double, english: Double) {((language math english) / 3.0).formatted(%.2f).toDouble})/*** x-y-z经过指定的分隔符分隔后的第一项替换为指定的char*/val replaceFirst: UserDefinedFunction functions.udf[String, String, String, String]((str: String, split: String, expect: String) {val first str.split(split)(0)str.replace(first, expect)}) } Spark使用UDF基于某些列的计算 该方案使用udf用于对DataFrame的某些列进行组合计算映射出一个新的列这种方案也就简化了map操作 val monthMapFunction: UserDefinedFunction spark.udf.register(monthMapFunction, (cost_month: String,default:String) {//202305if (StringUtils.isNotBlank(cost_month)) {val year cost_month.substring(0, 4)val month cost_month.substring(4)s$year-$month-01} else {default}})//加载注册的函数 udf_manage.monthMapFunction val f2 f1.withColumn(dMonth2, org.apache.spark.sql.functions.callUDF(monthMapFunction, lit(202305), lit(1970-01-01)))UDF使用原则 //加一列对参数dt的处理逻辑简单自己处理 .withColumn(year, lit(dt.split( )(0).split(-)(0))) //加一列对参数dt的处理逻辑麻烦把参数交给udf并封装过程 .withColumn(quarter, udf_manage.getQuarterMapFunction(lit(dt)))UDF和Map函数的使用原则 当有多个列需要处理并且处理的逻辑并不简单则用map配合样例类一次性处理 Hive自定义函数 import org.apache.commons.lang.StringUtils; import org.apache.hadoop.hive.ql.exec.UDF;import java.util.Arrays; import java.util.HashSet;public class StringDistinct extends UDF {public static void main(String[] args) {System.out.println(new StringDistinct().evaluate(a,b,a,b,c,b,c));}/*** param sa,b,a,b,c,b,c* return a, b, c*/public String evaluate(final String s) {if (StringUtils.isEmpty(s)) {return ;}String s1 new HashSet(Arrays.asList(s.split(,))).toString();return s1.substring(1, s1.length() - 1).replace(, , ,);}} 在hive2的节点加载jar包 add jar /mnt/db_file/jars/udf-1.0-SNAPSHOT.jar; create temporary function idsCnts as “com.mingzhi.StringDistinctCnts”; SELECT * from dwd_order_info_abi WHERE dt BETWEEN ‘2023-07-01’ AND ‘2023-07-31’ AND institutionid‘481’ AND idsCnts(send_user_ids)1;
http://www.pierceye.com/news/713290/

相关文章:

  • 网站设计主流尺寸weui wordpress模板
  • 汕头市网站建设商机互联网站建设
  • 口碑好的网站建设苏州园区做网站公司
  • 网站互联网设计图风格网站服务器异常是什么意思
  • 有哪些好的做兼职网站有哪些免费做ppt的网站
  • 学生成绩管理系统网站建设上海公共招聘网12333官网
  • 邵东做网站的公司wordpress修改文章字体颜色
  • 那个网站百度收录快天河高端网站建设
  • 网站建设 客户拜访wordpress设置新页面
  • 做百度推广送的网站网站建设中gif
  • 网站风格介绍wordpress怎么给产品编号
  • 站长聚集地深圳网络提速优化服务包
  • 西安外贸网站建设公司网站域名过期后续费多长时间生效
  • 网站制作资质2017建设厅网站
  • 网站系统开发毕业设计哈尔滨seo优化软件
  • 南通企业网站网站制作的书籍
  • 长沙网站收录怎么网站能找人做装修事
  • 鞍山网站制作谁家好2021没封的网站有人分享吗
  • 网站建设公司net2006iis虚拟网站
  • 有哪些竞价网站wordpress手机端网站模板下载
  • 浙江建设厅网站施工员报名莱芜庞允盟
  • 网站建设 销售 知乎云南网站设计外包
  • 网站建设怎么学习phpcms门户网站
  • 佛山营销型网站定制三站合一网站建设方案
  • 广州市哪有做网站的查找全国免费网站建设
  • 江门seo网站推广跳动爱心代码html教程
  • 网站退出率网易搜索引擎入口
  • 企业网站建设方讯长沙城乡建设网站
  • 手机网站建设优化软件做网站空间费用是什么意思
  • 网站透明效果工厂网站建设流程图