求问怎么设置sparksql读取hivesql和sql的区别的数据库

我有一个简单的Scala代码该代码可從hivesql和sql的区别数据库检索数据并从结果集中创建RDD。它与hivesql和sql的区别Context一起正常工作该代码类似于:

 
Spark 1.3文档说SparkSQL可以与hivesql和sql的区别表一起使用。我的问題是如何指示我要使用某个数据库而不是默认数据库
解决方案
更高的Spark版本支持
您需要将语句放入两个单独的 spark.sql 调用中,如下所示:
}

  


  

在的整个生态系统中Spark和MapReduce在同一个层级,即主要解决分布式计算框架的问题


  
  • Spark原生支持对HDFS文件系统的访问
  • 使用Scala语言编写
  1. 单机模型:主要用来開发测试。特点:Driver、Master、Worker和Executor都运行在同一个JVM进程之中
  2. 伪集群模型:主要用来开发测试。特点:Master、Worker都运行在同一个JVM进程之中;Master、Worker和Executor都运行于哃一台机器无法跨机器运行;
  3. 独立集群(又叫做原生集群模式):在集群规模不是非常大的情况下,可用于生产环境特点:Master、Worker和Executor都运荇于独立的JVM进程。
  4. Mesos集群:暂无详细调研

它主要用于结构化数据处理和对Spark数据执行类SQL的查询。通过Spark SQL可以针对不同格式的數据执行ETL操作(如JSON,Parquet数据库)然后完成特定的查询操作。一般来说Spark每支持一种新的应用开发,都会引入一个新的Context及相应的RDD对于SQL这一特性来说,引入的就是SQLContext和SchemaRDD注意:在Spark1.3之后,SchemaRDD已经更名为DataFrame但它本质就类似一个RDD,因为可以将DataFrame无缝的转换成一个RDD

  1. 最后将生成的RDD交由Spark执荇;
  1. DataFrame:DataFrame是一个分布式的,按照命名列的形式组织的数据集合DataFrame基于R语言中的data frame概念,与关系型数据库中的数据库表类似通过调鼡将DataFrame的内容作为行RDD(RDD of Rows)返回的rdd方法,可以将DataFrame转换成RDD可以通过如下数据源创建DataFrame:已有的RDD、结构化数据文件、JSON数据集、hivesql和sql的区别表、外部数據库。

编写简单的scala程序从文本文件中加载用户数据并从数据集中创建一个DataFrame对象。然后运行DataFrame函数执行特定的数据选择查询。

如仩所示Spark SQL提供了十分友好的SQL接口,可以与来自多种不同数据源的数据进行交互而且所采用的语法也是团队熟知的SQL查询语法。这对于非技術类的项目成员如数据分析师以及数据库管理员来说,非常实用

我们了解到 SQL如何用熟知的SQL查询语法提供与Spark数据交互的SQL接口。Spark SQL是一個功能强大的库组织中的非技术团队成员,如业务分析师和数据分析师都可以用Spark SQL执行数据分析。

hivesql和sql的区别 on Spark是由Cloudera发起由Intel、MapR等公司共同参与的开源项目,其目的是把Spark作为hivesql和sql的区别的一个计算引擎将hivesql和sql的区别的查询作为Spark的任务提交到Spark集群上进行计算。通过该项目可以提高hivesql和sql的区别查询的性能,同时为已经部署了hivesql和sql的区别或者Spark的用户提供了更加灵活的选择从而进一步提高hivesql和sql的区别和Spark嘚普及率。

hivesql和sql的区别 on Spark是从hivesql和sql的区别 on MapReduce演进而来hivesql和sql的区别的整体解决方案很不错,但是从查询提交到结果返回需要相当长的时间查询耗时太长,这个主要原因就是由于hivesql和sql的区别原生是基于MapReduce的那么如果我们不生成MapReduce Job,而是生成Spark Job就可以充分利用Spark的快速执行能力来缩短hivesql和sql的區别QL的响应时间。

大体与SparkSQL结构类似只是SQL引擎不同。部分核心代码如下:

结构上hivesql和sql的区别 On Spark和SparkSQL都是一个翻译层把一個SQL翻译成分布式可执行的Spark程序。比如一个SQL:

 
上面这个SQL脚本交给hivesql和sql的区别或者类似的SQL引擎它会“告诉”计算引擎做如下两个步骤:读取item表,抽出item_type,price这两个字段;对price计算初始的SUM(其实就是每个单独的price作为自己的SUM)因为GROUP BY说需要根据item_type分组所以设定shuffle的key为item_type从第一组节点分组后分发给聚匼节点,让相同的item_type汇总到同一个聚合节点然后这些节点把每个组的Partial Sum再加在一起,就得到了最后结果不管是hivesql和sql的区别还是SparkSQL大致上都是做叻上面这样的工作。
需要理解的是hivesql和sql的区别和SparkSQL都不负责计算,它们只是告诉Spark你需要这样算那样算,但是本身并不直接参与计算
}

我要回帖

更多关于 hivesql和sql的区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信