- 博客(6)
- 收藏
- 关注
原创 SPARK UDF多次执行的问题
SPARK UDF多次执行的问题通常我们在一个dataframe中调用udf时,我们预期是每一行应用一次udf函数,但实际上这是不能保证每一行应用一次的,因为在一些可能多次访问udf返回值得场景下,spark内部会优先反复调用udf而不是job。所以我们在设计udf时应该设计为pure function,这样可以保证即使对于同一条数据多次调用udf也不会影响预期结果,否则应该考虑使用map/m...
2019-07-22 18:17:21
1684
原创 spark dataframe/dataset解析json字符串的字段
1.使用函数get_json_object逐个取出json当层对象object testdf { def main(args: Array[String]): Unit = { Logger.getLogger("org.apache.spark").setLevel(Level.ERROR) val spark = SparkSession.builder().master...
2019-06-23 11:33:03
3693
原创 【公式证明】矩阵乘积转置
证明:(AB)T=BTAT(AB)^T=B^TA^T(AB)T=BTAT对于等式左侧设AB=C,CT=DAB=C,C^T=DAB=C,CT=D则Dm,n=Cn,m=[An,:,B:,m]D_{m,n}=C_{n,m}=[A_{n,: },B_{:,m}]Dm,n=Cn,m=[An,:,B:,m]对于等式右侧设BTAT=GB^TA^T=GBTAT=G则Gm,n=[Bm,:T,A...
2019-06-01 21:05:04
29252
3
原创 flume interceptor使用
Timestamp Interceptor时间戳拦截器,将当前时间戳(毫秒)加入到events header中,key名字为:timestamp,值为当前时间戳参数默认值描述type取值为timestamp,也可以使用类名的全路径preserveExistingfalse如果设置为true,若事件中报头已经存在,不会替换报头同名key的值a3.sou...
2019-03-03 14:48:31
440
原创 spark累加器v2
自定义累加器类步骤:MyAccumulator1.需继承AccumulatorV22.定义成员累加值并初始化 res3.重写isZero方法 对累加值进行状态检查,系统内部调用4.重写copy方法 拷贝一个新的AccumulatorV2,系统内部调用5.重写reset方法 重置AccumulatorV2中的累加值res,系统内部调用6.重写add方法 实现对res进行累加的逻辑...
2019-02-17 23:28:04
285
原创 spark dataframe构建方式
spark dataframe构建方式1.从Seq序列转为dataframe,使用toDF方法,需要隐式转换val df = Seq((1,"brr"),(2,"hrr"),(3,"xxr")).toDF("id","name")df.show()输出:| id|name|+---+----+| 1| brr|| 2| hrr|| 3| xxr|+---+----+2...
2018-12-24 23:35:54
499
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人