var函数

问题 spark udf函数不能序列化

泄露秘密 提交于 2019-12-16 23:27:03
如下在实现spark的udf函数时: val randomNew = ( arra : Seq [ String ] , n : Int ) = > { if ( arra . size < n ) { return arra . toSeq } var arr = ArrayBuffer [ String ] ( ) arr ++ = arra var outList : List [ String ] = Nil var border = arr . length //随机数范围 for ( i < - 0 to n - 1 ) { //生成n个数 val index = ( new Random ) . nextInt ( border ) outList = outList : : : List ( arr ( index ) ) arr ( index ) = arr . last //将最后一个元素换到刚取走的位置 arr = arr . dropRight ( 1 ) //去除最后一个元素 border -= 1 } outList . toSeq } sqlContext . udf . register ( "randomNew" , randomNew ) 执行出现如下错误: Caused by: org.apache.spark.SparkException:

闭包与ajax

和自甴很熟 提交于 2019-12-16 22:41:49
一、匿名函数 之前学习的函数: //1.普通 function sum ( ) { console . log ( "Fd" ) ; } //2.表达式函数 var s = function ( ) { console . log ( "fd" ) ; } //3.事件处理函数 document . onclick = function ( ) { console . log ( this ) ; } //4.构造函数 function Student ( ) { this . name = "web" ; } 匿名函数:(没有名字) //5.匿名函数 function ( ) { console . log ( "匿名函数" ) ; } 二、IIFE函数(立即执行函数) IIFE:Imdiately Invoked Function Expression 立即执行函数 优点:避免全局污染,减少不必要的内存浪费 作用: 避免全局污染,减少内存浪费,方便嵌入 放在js最上面,所有的js代码,都放入到自执行函数中, 避免全局污染,减少内存浪费 如果刚接手一个新的项目,添加新的功能,写一个自执行函数,把代码让里面,他是一个独立的模块,不会影响到其他的代码 ( function ( ) { console . log ( "立即执行" ) ; } ( ) ) ; //自执行 (

cookie与正则

▼魔方 西西 提交于 2019-12-16 22:10:38
一、cookie cookie : 由web服务器创建的,存储在本地计算机中的少容量数据 用户名,密码,id,只能存储4KB 谷歌和欧朋不支持本地存储 如果没有过期时间,一般浏览结束后销毁cookie 作用 :方便服务器识别用户,存储账号密码 cookie缺点:容量限制 4KB 由http明文传递,容易被窃用,盗取 cookie每一次请求都会自动添加到请求头Request Headers,增加容量 1. 存储cookie //1.存储:document.cookie="key=value" document . cookie = "userName=ujiuye" ; //2.存储多个,需要写多次 document . cookie = "passWord=123456" ; //3.key同名会覆盖 document . cookie = "passWord=654321" ; 2. 获取cookie //2.获取cookie var cookie = document . cookie ; console . log ( cookie ) ; //"userName=ujiuye; passWord=123456" var arr = cookie . split ( "; " ) ; //分号加空格 console . log ( arr ) ; //["userName

Canvas绘制时钟

▼魔方 西西 提交于 2019-12-16 17:12:22
1、时钟外圆的绘制 了解基本概念: 1度 = Math.PI/180; var canvas = document.getElementById('clock'); var ctx = canvas.getContext('2d'); var width = ctx.canvas.width; var height = ctx.canvas.height; var r = width/2; function drawBorder(){ //默认canvas的原点为左上角,现在要将其移动到居中中心位置;使用canvas的API translate ctx.translate(r,r); //开始一条绘制或重置当前的路径 ctx.beginPath(); //绘制线条宽度 ctx.lineWidth = 4; //绘制圆,利用ctx.arc(x,y,r,startDeg,endDeg,direction); 注意: direction(可选),规定应该是逆时针还是顺时针绘制;false = 顺时针,true= 逆时针 ctx.arc(0,0,r-2,0,2*Math.PI,false); //绘制已定义路径 ctx.stroke(); //绘制小时数(文本) var hourArr = [3,4,5,6,7,8,9,10,11,12,1,2]; ctx.font = "18px

16.go语言基础学习(上)——2019年12月16日

我的未来我决定 提交于 2019-12-16 17:04:04
2019年12月13日10:35:20 1.介绍 2019年10月31日15:09:03 2.基本语法 2.1 定义变量 2019年10月31日16:12:34 1.函数外必须使用var定义变量 var a=1 b:=5 声明变量的一般形式是使用 var 关键字: var name type 其中,var 是声明变量的关键字,name 是变量名,type 是变量的类型。 2.没有全局变量说法,只有包变量 3.集中定义变量 var ( a int c string d bool ) 4.使用var关键字 var a,b,c bool var s1,s2 string="hello","world" 5.使用:=定义变量 只能在函数体内使用 a,b,c:=1,2,"123" 6.基本类型 Go语言的基本类型有: bool string int、int8、int16、int32、int64 uint、uint8、uint16、uint32、uint64、uintptr byte // uint8 的别名 rune // int32 的别名 代表一个 Unicode 码 float32、float64 complex64、complex128 7.源代码: package main import "fmt" var ( a int c string d bool ) func main()

我将其名称作为字符串时如何执行JavaScript函数

淺唱寂寞╮ 提交于 2019-12-16 05:01:58
我有一个 JavaScript 函数的名称作为字符串。 如何将其转换为函数指针,以便以后可以调用? 根据情况,我可能还需要将各种参数传递给该方法。 一些功能可能采用 namespace.namespace.function(args[...]) 。 #1楼 还有一些非常有用的方法。 http://devlicio.us/blogs/sergio_pereira/archive/2009/02/09/javascript-5-ways-to-call-a-function.aspx var arrayMaker = { someProperty: 'some value here', make: function (arg1, arg2) { return [ this, arg1, arg2 ]; }, execute: function_name }; #2楼 有关Jason和Alex帖子的更多详细信息。 我发现将默认值添加到上下文很有帮助。 只是把 context = context == undefined? window:context; context = context == undefined? window:context; 在函数的开头。 您可以将 window 更改为首选上下文,然后每次在默认上下文中调用此变量时都不需要传递相同的变量。 #3楼 如果要使用

JS闭包

血红的双手。 提交于 2019-12-15 20:07:56
函数与对其状态即 词法环境 ( lexical environment )的引用共同构成 闭包 ( closure )。也就是说,闭包可以让你从内部函数访问外部函数作用域。在JavaScript,函数在每次创建时生成闭包。 词法作用域 请看下面的代码: function init() { var name = "Mozilla"; // name 是一个被 init 创建的局部变量 function displayName() { // displayName() 是内部函数,一个闭包 alert(name); // 使用了父函数中声明的变量 } displayName(); } init(); init() 创建了一个局部变量 name 和一个名为 displayName() 的函数。 displayName() 是定义在 init() 里的内部函数,仅在该函数体内可被获取。请注意, displayName() 内没有自己的局部变量,然而它可以访问到外部函数的变量,所以 displayName() 可以使用父函数 init() 中声明的变量 name 。 运行该代码后发现, displayName() 内的 alert() 语句显示出了 name 变量的值(该变量在父函数中声明)。这个 词法作用域 的例子描述了引擎是如何解析嵌套函数中的变量的。词法(lexical)一词表明

一些代码封装的方法

☆樱花仙子☆ 提交于 2019-12-14 17:19:48
一些代码封装的方法 时间过滤器 function dateFormat(date, format) { if (typeof date === "string") { var mts = date.match(/(\/Date\((\d+)\)\/)/); if (mts && mts.length >= 3) { date = parseInt(mts[2]); } } date = new Date(date); if (!date || date.toUTCString() == "Invalid Date") { return ""; } var map = { "M": date.getMonth() + 1, //月份 "d": date.getDate(), //日 "h": date.getHours(), //小时 "m": date.getMinutes(), //分 "s": date.getSeconds(), //秒 "q": Math.floor((date.getMonth() + 3) / 3), //季度 "S": date.getMilliseconds() //毫秒 }; format = format.replace(/([yMdhmsqS])+/g, function(all, t) { var v = map[t]; if (v !==

Js中caller和callee的区别

北城以北 提交于 2019-12-14 17:02:21
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> caller返回一个函数的引用,这个函数调用了当前的函数;callee放回正在执行的函数本身的引用,它是arguments的一个属性 caller caller返回一个函数的引用,这个函数调用了当前的函数。 使用这个属性要注意: 1 这个属性只有当函数在执行时才有用 2 如果在javascript程序中,函数是由顶层调用的,则返回null functionName.caller: functionName是当前正在执行的函数。 var a = function() { alert(a.caller); } var b = function() { a(); } b(); 上面的代码中,b调用了a,那么a.caller返回的是b的引用,结果如下: var b = function() { a(); } 如果直接调用a(即a在任何函数中被调用,也就是顶层调用),返回null: var a = function() { alert(a.caller); } var b = function() { a(); } //b(); a(); 输出结果: null callee callee放回正在执行的函数本身的引用,它是arguments的一个属性 使用callee时要注意: 1 这个属性只有在函数执行时才有效 2

JavaScript数组,函数及预解析

强颜欢笑 提交于 2019-12-14 14:01:02
1 数组 1.1 为什么要学习数组 之前学习的数据类型,只能存储一个值(比如:Number/String。我们想存储班级中所有学生的姓名,此时该如何存储? 1.2 数组的概念 所谓数组,就是将多个元素(通常是同一类型)按一定顺序排列放到一个集合中,那么这个集合我们就称之为数组。 1.3 数组的定义 数组是一个有序的列表,可以在数组中存放任意的数据,并且数组的长度可以动态的调整。 通过数组字面量创建数组 创建一个空数组 var arr1 = []; 创建一个包含3个数值的数组,多个数组项以逗号隔开 var arr2 = [1, 3, 4]; 创建一个包含2个字符串的数组 var arr3 = ['a', 'c']; 可以通过数组的length属性获取数组的长度 console.log(arr3.length); 可以设置length属性改变数组中元素的个数 arr3.length = 0; 1.4 获取数组元素 数组的取值 格式:数组名[下标] 下标又称索引 功能:获取数组对应下标的那个值,如果下标不存在,则返回undefined。 var arr = ['red',, 'green', 'blue']; arr[0]; // red arr[2]; // blue arr[3]; // 这个数组的最大下标为2,因此返回undefined 1.5 遍历数组 遍历:遍及所有