• 基于Spark1.3.0的Spark sql三个核心部分


    基于Spark1.3.0的Spark sql三个核心部分:

    1.可以架子啊各种结构化数据源(JSON,Hive,and Parquet)

    2.可以让你通过SQL,saprk内部程序或者外部攻击,通过标准的数据库连接(JDBC/ODBC)连接spark,比如一个商业智能的工具Tableau

    3.当你通过使用spark程序,spark sql提供丰富又智能的SQL或者regular Python/Java/Scala code,包括 join RDDS ,SQL tables ,使用SQL自定义用户函数

    以下资料参考自:http://blog.csdn.net/stark_summer/article/details/45843803

    在Spark中提供了一个JdbcRDD类,该RDD就是读取JDBC中的数据并转换成RDD,之后我们就可以

    对该RDD进行各种操作。我们先看看该类:

    JdbcRDD[T:ClassTag](sc:SparkContext,getConnection:()=>Connection,

    sql:String,lowerBound:Long,upperBound:Long,numPartitions:Int,

    mapRow:(ResultSet)=> T=JdbcRDD.resultSetToObjectArray _)

    1、getConnection 返回一个已经打开的结构化数据库连接,JdbcRDD会自动维护关闭。

    2、sql:是查询语句,次查询已经必须包含两处占位符?来作为分割数据库ResultSet的参数,

    例如:"select title,author from books where ?<=id and id<=?"

    3.lowerBound,upperBound,numPartitions:分别为第一、第二占位符,partition的个数。例如:给出lowebound 1,upperbound 20 numpartitions 2,则查询分别为(1,10,)与(11,20)

    4.mapRow是转换函数,将返回的ResultSet转换成RDD需要的单行数据,此处可以选择Array或其他,也可以是自定义的case class.默认的是讲ResultSet转换成一个Object数组。

  • 相关阅读:
    数据结构与算法—栈和队列
    数据结构与算法—双向链表
    数据结构与算法—单向循环链表
    hashMap高低位异或原理
    MySQL中order by排序时,数据存在null,排序在最前面
    Class.getSimpleName()的作用
    Linux密码过期问题,即WARNING:Your password has expired
    CSS

    easyexcel注解
  • 原文地址:https://www.cnblogs.com/jingblogs/p/5531560.html
Copyright © 2020-2023  润新知