日常工作中我们往往面对的数据都是海量的文件数据,我们如何快速通过spark将文件导入到hbase库中,我这写了一个简单的例子仅供参考,实际上数据是需要经过清洗才能放入到hbase库中的。
由于数据文件内容涉及到公司实际项目,不便贴出,此文着重spark提出数据、清洗、入hbase库这个逻辑的实现,scala写的代码比较精简,代码如下:
ParseClient.java主要实现文件加载、清洗、入库的工作:
package main.scala import org.apache.spark.SparkConf import org.apache.spark.SparkContext import scala.collection.mutable.ListBuffer import org.apache.hadoop.hbase.util.Bytes import org.apache.hadoop.hbase.client.Put import org.apache.hadoop.hbase.io.ImmutableBytesWritable import org.apache.spark.rdd.RDD.rddToPairRDDFunctions import scala.collection.mutable.ListBuffer object ParseClient { def main(args: Array[String]) { val conf = new SparkConf(); conf.setAppName("ParseClient") conf.setMaster("local"); val sc = new SparkContext(conf); val textRdd = sc.textFile("WW_2016-10-13~2016-10-13.txt"); ---数据清洗 var smailList = new ListBuffer[String](); val arrRdd = textRdd.flatMap { line => { val allList = new ListBuffer[ListBuffer[String]](); if (line == "" || "".equals(line)) { allList += smailList; smailList = new ListBuffer[String](); } else { smailList +=