`
kevin19900306
  • 浏览: 448380 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Spark通过JdbcRdd连接Oracle数据库(scala)

阅读更多

一、代码

package com.sgcc.hj
 
import java.sql.DriverManager
 
import org.apache.spark.rdd.JdbcRDD
import org.apache.spark.{SparkConf, SparkContext}

object JdbcTest {
  def main(args: Array[String]) {
    val conf = new SparkConf()
    val sc = new SparkContext(conf)
 
    val rdd = new JdbcRDD(
      sc,
      () => {
        Class.forName("oracle.jdbc.driver.OracleDriver").newInstance()
        DriverManager.getConnection("jdbc:oracle:thin:@172.16.222.112:1521:pms", "scyw", "scyw")
      },
      "SELECT * FROM MW_APP.CMST_AIRPRESSURE WHERE 1 = ? AND rownum < ?",
      1, 10, 1,
      r => (r.getString(1),r.getString(2),r.getString(5)))
    rdd.collect().foreach(println)
    sc.stop()
  }
}

 

二、运行截图

命令:spark-submit --master yarn --jars /opt/test/data/oracle.jdbc_10.2.0.jar --name OracleRead --class com.sgcc.hj.JdbcTest--executor-memory 1G /opt/test/data/sparktest.jar(注意这里依赖了oracle的jar包要在加上)

 

 

三、答疑

1、官方文档地址:

  https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.rdd.JdbcRDD

2、JdbcRdd中的构造参数:

  前面三个就不解释了,一眼就可以看懂,后面三个数字,前两个表示SQL中的参数,必须是LONG型,而且必须有,这个是Spark源码要求的,如果没有LONG型的条件,可以使用1=1这种参数(第三个参数要为1);第三个参数表示分区查询,例如给定前两个参数为1和20,第三个参数为2,那么SQL就会执行两次,第一次参数为(1, 10),第二次为(11, 20);最后一个参数是函数,这里表示把一条记录里的第1、2、5个字段组成三元组,当然也可以变成别的形式。

 

 

分享到:
评论

相关推荐

    oracle数据库常用操作指令

    Oracle数据库是目前广泛使用的大型关系型数据库管理系统之一。在日常的数据库维护和管理过程中,经常会用到各种操作指令来完成特定的任务。针对Oracle数据库,常用的操作指令可以分为数据控制语句(DML)、数据定义...

    spark core、spark sql以及spark streaming 的Scala、java项目混合框架搭建以及大数据案例

    在大数据处理领域,Spark...通过这个项目,学习者可以深入理解Spark在大数据处理中的实际应用,掌握Scala和Java混合编程,以及如何利用Maven管理项目,同时了解实时处理和批处理的结合,从而提升大数据处理的实战技能。

    Scala和Spark大数据分析函数式编程、数据流和机器学习

    Scala和Spark是大数据分析领域中的两个重要工具,它们在处理大规模数据时表现出强大的性能和灵活性。Scala是一种静态类型的函数式编程语言,而Spark是一个分布式计算框架,尤其适合于大数据处理和分析。本教程将深入...

    scala + mybatis 数据库查询

    通过以上步骤,我们可以高效地利用Scala和MyBatis实现数据库查询。这种结合不仅保持了Scala的优雅和强大,还充分利用了MyBatis的便利性。在实际项目中,这种集成方式能够帮助开发者快速开发出稳定、高性能的数据访问...

    spark解析csv文件,存入数据库

    在这部分文件内容中,我们首先看到了对Spark解析CSV文件并存入数据库的一个简单介绍。接下来,会逐步展开几个重要知识点,包括Spark框架的基础、如何使用Spark读取和解析CSV文件、数据处理的相关操作以及如何将处理...

    基于scala语言的spark操作,包含连接操作mysql,连接hdfs.zip

    本教程将探讨如何使用 Scala 语言来操作 Spark,并介绍如何与 MySQL 数据库和 HDFS(Hadoop 分布式文件系统)进行交互。以下是相关知识点的详细说明: **1. Scala 语言基础** Scala 是一种多范式编程语言,融合了...

    spark-timeSeries.rar_scala 时间序列_spark ARIMA_spark arima_spark 滑

    在Scala中使用Spark,可以通过DataFrame或RDD API处理大量时间序列数据,并利用Spark的并行计算能力加速模型训练和预测过程。 四、Spark ARIMA实现 在Spark上实现ARIMA模型,通常需要借助专门的库,如`sparkts`库,...

    Spark.sql数据库部分的内容

    1. **兼容性**:Spark SQL支持通过Hive的元数据、SQL语法和Hive SerDes与Hive集成,使得在Spark上可以无缝地运行Hive的工作负载。 2. **DataFrame API**:DataFrame API提供了强类型和静态类型的API,支持Scala、...

    Greenplum Spark Connector 2.2.0 for Scala 2.11

    在技术细节上,`greenplum-connector-apache-spark-scala_2.11-2.2.0.jar`是连接器的核心库文件,它包含了所有必要的类和方法,使得Spark应用程序能够识别和连接Greenplum。开发者在构建Spark应用时,需要将这个JAR...

    sparkscala开发依赖包

    5. 编写和运行代码:使用Scala编写Spark程序,然后通过ECLIPSE的运行配置来启动Spark集群并提交作业。 总之,Spark Scala开发依赖包对于在ECLIPSE中进行大数据处理项目至关重要。正确配置这些依赖将使开发者能够在...

    spark高手之路-实战Scala

    在Spark的世界里,Scala语言扮演着至关重要的角色。Spark框架由Scala编写,这使得它具有高效、可扩展...通过阅读《Spark实战高手之路》的三个部分,相信你将在Scala和Spark的世界中渐行渐远,成为一名真正的技术专家。

    spark-scala-api

    Spark Scala API 是一个用于大数据处理的强大工具,它结合了Apache Spark的高性能计算框架与Scala编程语言的简洁性和表达力。这个zip压缩包很可能是包含了Spark的Scala开发接口及相关示例,便于开发者在Scala环境中...

    Springboot 结合Apache Spark 2.4.4与Scala 2.12 集成示例

    在本集成示例中,我们将探讨如何将Spring Boot与Apache Spark 2.4.4以及Scala 2.12版本相结合,实现一个简单的"Hello World"应用。Spring Boot以其便捷的微服务开发能力,而Apache Spark是大数据处理领域中的一员...

    spring boot + scala + spark http驱动spark计算

    综上所述,这个项目展示了如何构建一个现代化的大数据处理系统,该系统使用Spring Boot提供易于使用的HTTP接口,通过Scala编写Spark作业,实现高效的数据计算。这样的架构有助于简化开发过程,同时保持了高性能的...

    基于Spark1.6使用Spark SQL和sqlite数据库进行诗歌浏览查询和集句的Scala工程源码

    基于Spark1.6,使用Spark SQL框架和sqlite数据库,把唐诗三百首,宋诗三百首和元明清诗精选导入数据库,可以按来源,体裁及作者,方便地查出诗句或试题中包含某个关键字的作品,还可以在选中作品后,进行五绝,七绝...

    Spark+hadoop+scala 完全分布式集群搭建过程及启动过程

    对于想学习 Spark 的人而言,如何构建 Spark 集群是其最大的难点之一, 为了解决大家构建 Spark 集群的一切困难,Spark 集群的构建分为了五个步骤,从 零起步,不需要任何前置知识,涵盖操作的每一个细节,构建完整...

    scala与spark基础

    在Spark中,Scala用于定义数据处理逻辑,通过RDD(弹性分布式数据集)或者DataFrame/Dataset API进行操作,这些API提供了丰富的转换和行动操作,如map、filter、reduce等,支持并行计算,极大地提高了处理速度。...

    Scala与Spark的环境搭建版本匹配问题(学习笔记)

    最新版本的scala-2.11.8与Spark2.1.0环境搭建

    电影评分数据汇总(使用spark2.4+scala, 分析采用spark RDD的API. 数据集采用标准电影评分数据).zip

    【资源说明】 1、该资源内项目代码都是经过测试运行成功,功能正常的情况下才上传的,请放心下载使用。...电影评分数据汇总,(使用spark2.4+scala完成, 分析采用spark RDD的API. 数据集采用标准电影评分数据).zip

    大数据资源整合,基于Cent不需要考虑版本兼容的问题Spark+Hadoop+Hive+Scala+sbt+ZooKeeper

    本方案集成了CentOS环境下的Spark、Hadoop、Hive、Scala、sbt和ZooKeeper,无需考虑版本兼容问题,可以直接用于大数据处理和分析。 【适合人群】 需要在CentOS下搭建大数据处理平台的工程师。 【包含内容】 - Spark ...

Global site tag (gtag.js) - Google Analytics