`
flyfoxs
  • 浏览: 298185 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

如何使用Spark/Scala读取Hbase的数据

阅读更多

必须使用高亮参数启动Spark-shell,否则当你遍历RDD时会出现如下的Exception

java.io.NotSerializableException: org.apache.hadoop.hbase.io.ImmutableBytesWritable

 

spark-shell --conf spark.serializer=org.apache.spark.serializer.KryoSerializer

 

以下代码,经过MaprDB实测通过

import org.apache.spark._
import org.apache.spark.rdd.NewHadoopRDD
import org.apache.hadoop.hbase.{HBaseConfiguration, HTableDescriptor}
import org.apache.hadoop.hbase.client.HBaseAdmin
import org.apache.hadoop.hbase.mapreduce.TableInputFormat
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.HColumnDescriptor
import org.apache.hadoop.hbase.util.Bytes
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.HTable;


val tableName = "/app/SubscriptionBillingPlatform/TRANSAC_ID"

val conf = HBaseConfiguration.create()

conf.set(TableInputFormat.INPUT_TABLE, tableName)


//create rdd
val hBaseRDD = sc.newAPIHadoopRDD(conf, classOf[TableInputFormat], 
  classOf[org.apache.hadoop.hbase.io.ImmutableBytesWritable],
  classOf[org.apache.hadoop.hbase.client.Result])


hBaseRDD.take(2).map(row=>row._2.rawCells). 
                 map(_.map( kv => (new String(kv.getQualifier()) -> new String(kv.getValue()) ) ).toMap ).
                 foreach( map => { map.foreach{ entry => print(entry._1 +":" + entry._2 + ", ")  } ; print("\n-----------\n") }  )  
                 
//get the row count
val count = hBaseRDD.count()
print("HBase RDD count:"+count)
  

 

分享到:
评论

相关推荐

    spark读取hbase数据,并使用spark sql保存到mysql

    本示例将详细介绍如何使用 Spark 从 HBase 中读取数据,并通过 Spark SQL 将其存储到 MySQL 数据库中。 首先,让我们了解 Spark 与 HBase 的交互。Spark 提供了 `spark-hbase-connector` 库,允许我们方便地连接到 ...

    scala API 操作hbase表

    如上述描述所示,这里使用的是Hadoop 2.7.3、Scala 2.11、Spark 2.1.1和HBase 1.1.2。你需要根据你的实际环境调整这些版本。此外,为了连接到HBase,还需要在项目的`src/main/resources`目录下放置`core-site.xml`、...

    hbase-rdd:Spark RDD从HBase读取,写入和删除

    本篇文章将详细探讨如何使用 Scala 和 Spark 的 Resilient Distributed Datasets (RDDs) 与 HBase 进行交互,包括读取、写入以及删除数据。 首先,我们需要理解 Spark RDD。RDD 是 Spark 的基本数据抽象,它是不可...

    spark streamming消费kafka数据存入hbase示例代码

    这个示例代码是用 Scala 编写的,用于演示如何使用 Spark Streaming 消费来自 Kafka 的数据,并将这些数据存储到 HBase 数据库中。Kafka 是一个分布式流处理平台,而 HBase 是一个基于 Hadoop 的非关系型数据库,...

    spark_hbase:Scala中的示例通过Spark读取保存在hbase中的数据,以及python的转换器示例

    在这里,我们提供了Scala中的一个新示例,该示例涉及通过Spark将hbase中保存的数据传输到String ,以及python转换器的新示例。 scala 的示例将保存在hbase中的数据传输到RDD[String] ,该数据包含columnFamily,...

    HBase-SparkStreaming:从HBase表读取并写入HBase表的简单Spark Streaming项目

    从HBase表读取并写入HBase表的简单Spark Streaming项目 #Prereqs运行 创建一个要写入的hbase表:a)启动hbase shell $ hbase shell b)创建表create'/ user / chanumolu / sensor',{NAME =>'data'},{NAME =>'...

    scala开发spark代码

    `sparkfirst`这个文件可能包含了使用Scala构建Spark基础应用的示例,如创建SparkContext,读取和处理数据,以及并行操作。 2. **Spark SQL**: Spark SQL是Spark的一个扩展,它允许开发者通过SQL或DataFrame/Dataset...

    spark-demos:Spark(多种版本)+ StreamingHiveSQLUDF演示

    本项目为平时使用Spark/HBase/Kafka等大数据组件的Demo示例,后续会逐渐丰富; 支持Kerberos/非Kerberos环境下操作HBase/Kafka/HDFS/Spark; 支持Spark Streaming实时读取Kafka; 支持Kafka/HBase相关可配置; 支持...

    scala-hive-HBASE-Api.7z

    Scala的强大之处在于其简洁的语法和对并发处理的良好支持,这使得它在大数据处理框架如Spark中被广泛使用。 2. **Hive**:Apache Hive是由Facebook开源的一个数据仓库工具,它可以将结构化的数据文件映射为一张...

    SparkHadoopHbase案例

    在"SparkHadoopHbase案例"中,我们关注的是如何使用Spark Streaming从Kafka中接收数据,进行实时日志分析,然后将结果存储到HBase中。Spark Streaming是Spark的一个模块,用于处理连续的数据流,它可以与Kafka等消息...

    建立Hive和Hbase的映射关系,通过Spark将Hive表中数据导入ClickHouse

    2. **读取Hive表**:使用Spark SQL的`spark.read.format("hive").load()`语句加载Hive表,这将返回一个DataFrame。 3. **处理和转换数据**:根据需求,可能需要对DataFrame进行一系列操作,如数据清洗、转换、聚合...

    SparkStreaming_HBase:将从Kafka收集过来的数据保存到HBase中

    SparkStreaming_HBase将从Kafka收集过来的数据保存到HBase中数据来源:日志生成器。 编写一个python工程,用于产生行为日志,每运行一次,产生所设定的数量数据,使用Linux的定时器,每隔60s执行一次,行为日志保存...

    【SparkCore篇07】RDD数据读取和保存1

    当处理JSON文件时,如果每行都是一个完整的JSON对象,我们可以将其视为文本文件进行读取,然后利用如Scala的`util.parsing.json.JSON`库解析每条数据。然而,通常推荐使用SparkSQL来处理JSON文件,因为它内置了更...

    spark-hbase:用于将 Spark 与 Apache HBase 数据结合使用的集成实用程序

    用于将 Spark 与 Apache HBase 数据结合使用的集成实用程序。 支持 基于 HBase 读取的扫描 基于 HBase 写入的 batchPut 基于 HBase 读取的分析 HFile 基于 HBase 写入的批量加载 要求 这个库需要 Spark 1.2+

    藏经阁-Scaling 30 TB s of Data lake with Apache HBase and Scala DSL

    藏经阁-Scaling 30 TB s of Data lake with Apache HBase and Scala DSL Apache HBase 是一个基于 HDFS 的...Apache HBase、Apache Spark 和 Scala DSL 是三种非常重要的技术栈,广泛应用于大规模数据处理和分析领域。

    基于Spark的视频观看数据分析系统源码

    通过Spark的弹性分布式数据集(Resilient Distributed Datasets, RDD)抽象,我们可以高效地对这些数据进行读取、转换和计算。 在项目源码中,`video-viewing-analysis-master`目录下的`src/main/scala`是主要的...

    hbase-rdd, 从HBase读取并写入 RDD.zip

    hbase-rdd, 从HBase读取并写入 RDD ? 这个项目允许将 Apache Spark 连接到 HBase 。 现在可以在 Scala 2.10和版本 2.11上使用Spark和 CDH5.0. 版本,在版本/版本 0.2.2-SNAPSHOT 工作时使用Spark和版本

    基于Spark+Scala+MongoDB的大数据实战,商品推荐系统设计与实现.zip

    两种东西,其一是IBM微软数据产品为代表的,其二是Hadoop+Hive+Apache Hive数据仓库软件有助于使用SQL读取,写入和管理驻留在分布式存储中的大型数据集。 可以将结构投影到已经存储的数据上。 提供了命令行工具和...

    基于spark streaming和kafka,hbase的日志统计分析系统.zip

    2. **数据处理**:Spark Streaming消费者订阅Kafka的主题,实时读取数据并执行统计分析,例如计算每分钟的错误率、访问量等。 3. **数据清洗**:在处理过程中可能需要过滤掉无效或不完整的日志,确保分析结果的准确...

Global site tag (gtag.js) - Google Analytics