javascript 의 function 을 사용하다 보면,  파라미터에 대해서 arguments 배열에 접근하여 사용하는 경우가 있다.

이를 통해 유동적인 파라미터를 제어하거나, 기존에 제공되는 api 를 커스터마이징도 할 수 있게 된다.


예시 1) string fomat <= 클릭

예시 2) setTimeout 커스터마이징 <= 클릭


function argLength(one, two){

    console.log("argLength.length : " + argLength.length);

    console.log("arguments.length : " + arguments.length);

}

argLength(1,2,3,4);


위 예제의 결과는

argLength.length : 2

arguments.length : 4

가 나오게 된다.

argLength 라는 function 은 선언되면서 가지게되는 몇가지 멤버변수가 있는데, 그중에 length 부분에는 선언시 정의된 파라미터의 개수가 바인딩된다. 

function 호출시에 파라미터는 function 에서 선언된 파라미터에 arguments 값이 순서대로 맵핑되고, 파라미터가 더 적은 경우에는 undefined 를 가지게 되며, 선언파라미터 많은 경우에는 arguments 배열을 통해 접근이 가능하게 된다.


* 호출

argLength(1);

* 결과

argLength.length : 2

arguments.length : 1

이와 같이 호출시에는 argLength 의 two 값은 undefined 가 되게 된다.



* 실행 테스트 function

var argLength = function(one,two){

     //... 중략

}

으로 선언된 function 이 있다.

아래에서 파라미터를 변경하여 실행하면(ex> argLength("홍길동","무인도","정류소") ), 

one, two 의 값과 argLength.length , arguments.length 를 확인할 수 있다.


 실행테스트

 결과

  

 



이상~

오라클 등에서는 to_number 와 같은 함수를 지원하는데 

그에 대해서 하이브는 cast 라는 함수를 지원한다.

사용법은 다음과 같다.



syntax> cast(컬럼 as 타입)

타입은 int, double, string 과 같은 형태를 말한다.


* 예시

 select stddev_pop(cast(population as double)) stddev ,

          variance(cast(population as double)) variance

 from lar_ca where population is not null;


기타로 stddev_pop 는 표준편차를

variance 은 분산을 구하는 함수이다.

'IT > 빅데이터(bigData)' 카테고리의 다른 글

하이브(hive) udf  (0) 2014.11.25
Hive 의 Serde 2  (0) 2014.11.25
Hive 의 Serde 1  (0) 2014.11.25
MapReduce 데이터 흐름 분석  (0) 2014.11.25
Mapper 클래스 구성 및 사용  (0) 2014.11.22

+ Recent posts