SparkSql连接Hive的各种操作_郝少的博客-程序员宅基地

技术标签: spark  apache spark  大数据  sparkSql  Spark技术经验  

1、数据kv1.txt

238val_238
86val_86
311val_311
27val_27
165val_165
409val_409
255val_255
278val_278
...

2、代码测试

package com.cn.sparkSql

import java.io.File

import org.apache.spark.sql.{Row, SparkSession}


object SparkSql_Hive {
  case class Record(key: Int, value: String)
  def main(args: Array[String]): Unit = {
    val warehouseLocation = "/spark-warehouse01"
    //val warehouseLocation = new File("spark-warehouse").getAbsolutePath
    val spark = SparkSession
      .builder()
      .master("local[*]")
      .config("hive.metastore.uris","thrift://master:9083")
      .config("fs.defaultFS","hdfs://master:9000")
      .appName("Spark Hive Example")
      .config("spark.sql.warehouse.dir", warehouseLocation)
      .enableHiveSupport()
      .getOrCreate()
    spark.sparkContext.setLogLevel("WARN")

    //在db_hive_test库中创建一个新表src
    //spark.sql("CREATE TABLE IF NOT EXISTS db_hive_test.src (key INT, value STRING)")
    //为src导入数据
    //spark.sql("LOAD DATA LOCAL INPATH 'kv1.txt' INTO TABLE db_hive_test.src")
    //查询数据
    //spark.sql("select * from db_hive_test.src").show(100)
    //统计总条数
    //spark.sql("select count(*) from db_hive_test.src").show()

    //复杂操作
//    import spark.implicits._
//    val df = spark.sql("select key,value from db_hive_test.src where key<10 order by key")
//    val sdf = df.map {
//      case Row(key, value) => s"key:$key,value:$value"
//    }
//    sdf.show()
//    df.show()

    //使用dataFram创建临时视图并进行关联查询
    val ndf = spark.createDataFrame((1 to 10).map(i=>Record(i,s"val_$i")))
    ndf.createTempView("record")
    spark.sql("select * from record r join db_hive_test.src s where r.key=s.key").show(100)

  }
}

注意:db_hive_test为新建的database;

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/hyj_king/article/details/104946369

智能推荐

泛微oa安装mysql,泛微OA某接口无需登录可执行任意SQL语句(附脚本) | CN-SEC 中文网...-程序员宅基地

先以本地为例http://localhost:8088/wscode 区域http://localhost:8088/ws/query?wsdl竟然提示code 区域Unmarshalling Error: unexpected element (uri:"http://**.**.**.**/", local:"arg0"). Expected elements are <{}arg1&g..._泛微免登录连接配置

阿里面试回来,想和Java程序员谈一谈-程序员宅基地

作者:掌柜的专栏 原文链接:http://www.jianshu.com/p/5681a1f0aad6 引言 其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。 但是,最

PatchMatch小详解-程序员宅基地

最近发了两片patch match的,其实自己也是有一些一知半解的,找了一篇不知道谁的大论文看了看,又回顾了一下,下面贴我的笔记。The PatchMatch Algorithmpatchmatch一开始被应用于结构化的图片编辑。是一个随机性的算法。致力于找到近似的最近领匹配。patchmatch的假设:邻近的像素有一样的模型参数\(p\in R^n\)有一个cost..._forward_backward_consistency_check详解

Microsoft的软件开发简单流程-程序员宅基地

[以下内容来自讲座记录,演讲者:黄雪斌 GTEC,记录者:tassadar]I阶段:设计阶段 Idea------->Feature List----------------->Function Spec------------Implement Spec // |

Flutter TextField(文本输入)使用填坑-程序员宅基地

TextField 是一个文本输入组件,一开始做登录页就用到了。但是,TextField 有一些坑官方还没有填,那么就只能通过一些俏皮的方案来解决了。当然,如果够强的话,也是可以写一个新的 widget 控件的 ~1、限定了可输入长度,超过长度后虽然不展示出来,但是点击删除键时,还是要删除已输入但是看不见的那部分2、限定了输入类型(比如数字),虽然会弹出响应类型的键盘(比如数字键盘),但是还是能输入其他类型(比如字母、汉字)以上两种坑合并解决方案如下,当然,如果想自己画一个数字键盘,也是可以解决输入

C++笔试题汇总 -程序员宅基地

1.static有什么用途?(请至少说明两种) 1)在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。 2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。 3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范...

随便推点

scala学习笔记(1)_scala 数组companion 函数-程序员宅基地

scala是以实现scaleable language为初衷设计出来的一门语言。官方中,称它是object-oriented language和functional language的混合式语言。并且,scala可以和java程序无缝拼接,因为scala文件编译后也是成为.class文件,并且在JVM上运行。不过,我更关心的是它的scaleable(扩展性)。一门语言到底怎样才算有扩展性呢?对语言_scala 数组companion 函数

Angular 1和Angular 2的区别_angular1和angular2的区别-程序员宅基地

1:Angular2不是从Angular1升级过来的,Angular2是重写的,所以他们之间的差别比较大2:Angular2使用了javascript的超集‘Typescript’,所以angular1和angular2从设定之初就是不一样的3:Angular1在设计之初主要是针对pc端的,对移动端支持较少(当然也有其他一些衍生框架如ionic),而Angular2是设计包含移动端的;4:A..._angular1和angular2的区别

【高级阶段】第21章 汇编语言-程序员宅基地

ret指令实现子程序的返回机制,ret指令弹出栈中保存的指令地址,然后无条件转移到保存的指令地址执行。通常用标签(label)指示程序中的指令地址,在x86汇编代码中,可在任何指令前加入标签。指令中可以有一个、两个或者三个操作数,也可没有操作数,根据一条指令有几个操作数地址,可将指令分为零地址指令、一地址指令、二地址指令、三地址指令、四地址指令略。)型指令:操作时都是涉及内存单元,参与操作的数都是放在内存里,从内存某单元中取操作数,操作结果存放至内存另一单元中,因此机器执行指令需要多次访问内存。

英文词向量:使用pytorch实现CBOW_python实现cbow-程序员宅基地

本文资源:链接:https://pan.baidu.com/s/1my30wyqOk_WJD0jjM7u4TQ提取码:xxe0 --来自百度网盘超级会员V1的分享中文都讲完了,英文没有什么好说的,相关的理论知识可以看之前的博客中文词向量:word2vec之skip-gram实现(不使用框架实现词向量模型)_Richard_Kim的博客-程序员宅基地中文词向量:使用pytorch实现CBOW训练_Richard_Kim的博客-CSDN博..._python实现cbow

数字电路电平标准_数字电路高低电平范围-程序员宅基地

关于电平标准的由来:在以高(1)和低(0)为格式的数字通信过程中必然要涉及到高和低对应的模拟电压值,而这个值的确定是有原因和历史的。具体而言就是和半导体器件的发展有关,例如TTL即Transistor-Transistor Logic (晶体管-晶体管逻辑集成电路),这是因为半导体器件中最先发明的是双极型晶体管。而后由于MOS,CMOS工艺的发展给电路的供电需求带来新的改变而导致输出数字电平标准..._数字电路高低电平范围

thymeleaf中js失效的情况之一_thymeleaf解析js里的[[]]失效-程序员宅基地

thymeleaf中js失效的情况之一关于这个问题,网上有很多解决办法,这里不再论述,这里只是分享其中一种情况,且网上没有此种情况的说明,而我遇到了,就此分享一下!!!spring boot项目中,thymeleaf页面中js失效,打开F12(开发者工具)查看:发现直接就没有加载<script>模块。仔细查看点后发现原因:我的thymeleaf中引入了公共模块head.html中的一个div(其他thymeleaf页面的类容):而<script>模块刚好是在head_thymeleaf解析js里的[[]]失效