spark中各种连接操作以及有用方法「建议收藏」

spark中各种连接操作以及有用方法

大家好,又见面了,我是全栈君。

 val a = sc.parallelize(Array(("123",4.0),("456",9.0),("789",9.0))
     val b = sc.parallelize(Array(("123",8.0),("789",10)))

    val c = a.join(b)
    c.foreach(println)
    /*
    (123,(4.0,8.0))
    (789,(9.0,10))
     */
    val d = a.cogroup(b)
    d.foreach(println)
    /*
    (456,(CompactBuffer(9.0),CompactBuffer()))
    (123,(CompactBuffer(4.0),CompactBuffer(8.0)))
    (789,(CompactBuffer(9.0),CompactBuffer(10)))
    */
    val e = a.leftOuterJoin(b)
    e.foreach(println)
    /*
      (456,(9.0,None))
      (123,(4.0,Some(8.0)))
      (789,(9.0,Some(10)))
      */
    val f = a.fullOuterJoin(b)
    f.foreach(println)
    /*
      (456,(Some(9.0),None))
      (123,(Some(4.0),Some(8.0)))
      (789,(Some(9.0),Some(10)))
      */
    val g = a.cartesian(b)
    g.foreach(println)
    /*
((123,4.0),(123,8.0))
((123,4.0),(789,10))
((456,9.0),(123,8.0))
((456,9.0),(789,10))
((789,9.0),(123,8.0))
((789,9.0),(789,10))
      */
    /*val h = a.coalesce(6,true)
    h.foreach(println)
    a.dependencies.foreach(println)*/
    val i = a.keyBy{case (k,v)=>("haha",234)}
    i.foreach(println)
    /*
      ((haha,234),(123,4.0))
      ((haha,234),(456,9.0))
      ((haha,234),(789,9.0))
     */

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116173.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • next()nextLine()以及nextInt()的区别及用法

    next()nextLine()以及nextInt()的区别及用法next()、nextLine()、nextInt()作为scanner内置的方法,常常让人傻傻分不清楚,今天在这里记下他们的区别以及以此区别为出发点的用法:他们的区别在于对于空格的处理方式不同,以及返回值不同。使用nextLine()方法时,不将空格看做是两个字符串的间隔,而是看作字符串的一部分,返回时,它作为String类型一并返回:publicclassdemo{ pub

    2022年4月29日
  • 什么是java常量「建议收藏」

    什么是java常量「建议收藏」  相信很多在学java技术的同学,对java常量这个并不陌生,什么是java常量呢?java常量就是在程序中固定不变的值,是不能改变的数据。例如数字1、字符“a”、浮点数3.2等。在Java中,常量包括整型常量、浮点数常量、布尔常量、字符常量等。  下面我们就一起来看看java中的这些常量:  1.整型常量  整型常量是整数类型的数据,有二进制、八进制、十进制和十六进制4种表示形式具体表示形式如下。  二进制:由数字0和1组成的数字序列。在JDK7.0中允许使用字面值来表示二进制数,前面

    2022年7月8日
  • keyvaluepair_Dictionary及KeyValuePair使用「建议收藏」

    keyvaluepair_Dictionary及KeyValuePair使用「建议收藏」//////除去数组中的空值和签名参数并以字母a到z的顺序排序//////过滤前的参数组///过滤后的参数组publicstaticDictionaryFilterPara(SortedDictionarydicArrayPre){DictionarydicArray=newDictionary();foreach(KeyValuePairtempindicArrayP…

    2022年7月26日
  • 小程序文本内容无法长按复制粘贴_小程序读取剪贴板怎么办

    小程序文本内容无法长按复制粘贴_小程序读取剪贴板怎么办微信小程序的文本,要具有长按复制功能,必须满足两个条件:文本在<text>标签内;<text>标签要有selectable属性。例如:<textselectable=’true’>文本</text>下面一个例子是,解决WxParse不能长按选择的问题。在wxParse.wxml中修改:diff-…

    2022年9月29日
  • Java finalize方法使用

    Java finalize方法使用《JAVA编程思想》:java提供finalize()方法,垃圾回收器准备释放内存的时候,会先调用finalize()。         (1).对象不一定会被回收。      (2).垃圾回收不是析构函数。      (3).垃圾回收只与内存有关。

    2022年9月19日
  • wireshark抓取dns数据包_2021年dns

    wireshark抓取dns数据包_2021年dns实验步骤一根据实验环境,本实验的步骤如下:1、测试环境中获取DNS数据包。2、分析DNS数据包。任务描述:获取两种类型的DNS数据包(1)通过浏览器访问域名(www.baidu.com)来获取DNS数据虽然合天实验室环境下,无法抓取此部分数据包(其实也可以自己搭建服务器,配置DNS服务器,但设计者比较懒,就将就下吧),但设计者希望学习的人能根据例子在自己的笔记本上抓取,然后分析。我们以登录www.baidu.com来获取DNS数据,启动Wireshark,在Filter中输入dns。打开浏览器

    2022年11月1日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号