참조 : https://github.com/nerdammer/spark-hbase-connector
/*
spark-shell 을 이용해야 해서 git clone 으로 프로젝트 빌드를 수행
*/
//hbase의 라이브러리를 CLASSPATH에 지정
export CLASSPATH=/usr/local/hbase/lib/*
//실행 옵션. 빌드한 spark-hbase-connector의 jar파일 지정
spark-shell --jars /usr/local/spark/spark-hbase-connector_2.10-1.0.2.jar
import it.nerdammer.spark.hbase._
/*
hbase내의 테이블의 특정 컬럼패밀리에 특정 qualifier를 지정해서 받아오는 소스
1.타입 지정 : [(String,...)] -> qualifier 수 만큼 있다면 차례로 들어가고 1개 더많으면 가장앞이 row key값 (테이블명)
2.select : 데이터를 받고 싶은 qualifier 이름 지정
3. inColumnFamily : 컬럼 패밀리를 지정
결과 : rdd = Array[String,String,String] 형태로 들어간다고 이해 하면 됨
*/
val rdd =sc.hbaseTable[(String,String,String)]("T_NAME").select("Q1","Q2").inColumnFamily("CF_Name")
/*
다른 컬럼패밀리의 qualifier를 받아오고 싶을때
select 에서 다른 컬럼패밀리 이름을 지정
*/
val rdd =sc.hbaseTable[(String,String,String,String)]("T_NAME").select("Q1","Q2","otherCF:Q3").inColumnFamily("CF_Name")
/*
RDD를 hbase에 저장 할때
1. toHBaseTable : 저장할 테이블 명
2. toColumns : qualifier 명
3. inColumnFamily : 컬럼 패밀리 명
*/
rdd.toHBaseTable("T_NAME").toColumns("Q1","Q2").inColumnFamily("CF_NAME").save()
댓글 없음:
댓글 쓰기