scala的reduce

spark 中的 reduce 非常的好用,reduce 可以对 dataframe 中的元素进行计算、拼接等等。例如生成了一个 dataframe :

//配置spark
  def getSparkSession(): SparkSession = {

    //读取配置文件
    val properties: Properties = new Properties()
    val ipstream: InputStream = this.getClass().getResourceAsStream("/config.properties")
    properties.load(ipstream)

    val masterUrl = properties.getProperty("spark.master.url")
    val appName = properties.getProperty("spark.app.name")
    val sparkconf = new SparkConf()
      .setMaster(masterUrl)
      .setAppName(appName)
      .set("spark.port.maxRetries", "100")
    val Spark = SparkSession.builder().config(sparkconf).getOrCreate()
    Spark
  }
def main(args: Array[String]): Unit = {
    val spark = getSparkSession()
    val sentenceDataFrame = spark.createDataFrame(Seq(
      (0, "Hi I heard about Spark"),
      (1, "I wish Java could use case classes"),
      (2, "Logistic regression models are neat")
    )).toDF("label", "sentence")
    sentenceDataFrame.show()
  }

假设要将 sentence 这一列拼接成一长串字符串,则:

sentenceDataFrame.createOrReplaceTempView("BIGDATA")
val sqlresult: DataFrame = spark.sql(s"SELECT sentence FROM BIGDATA")
val a: RDD[String] = sqlresult.rdd.map(_.getAs[String]("sentence"))
val b = a.reduce((x, y) => x + "," + y)

要是将 sentence 这一列拼接一个 List,则:

val c: RDD[List[String]] = sqlresult.rdd.map{ row=>List(row.getAs[String]("sentence"))}
val d: List[String] = c.reduce((x, y)=>x++y)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • spark计算两个DataFrame的差集、交集、合集

    spark 计算两个dataframe 的差集、交集、合集,只选择某一列来对比比较好。新建两个 dataframe :

    机器学习和大数据挖掘
  • spark dataframe 转换 json

    但是上面发现每一个key:value都放在一个括号里面,怎么把他们合并成起来?只需要文本处理一下:

    机器学习和大数据挖掘
  • scala转换date提取年月日时分秒

    从数据库提取出来的时间为 String 格式,现在需要转换为 date 并提取出里面的 小时 时间段:

    机器学习和大数据挖掘
  • 【Vue.js】Vue.js组件库Element中的弹出框、气泡确认框、卡片和走马灯

    Popover 的属性与 Tooltip 很类似,它们都是基于Vue-popper开发的,因此对于重复属性,请参考 Tooltip 的文档,在此文档中不做详尽解...

    魏晓蕾
  • 编程思想 之「访问权限控制」

    访问权限控制的等级,从最大权限到最小权限依次为:public、protected、包访问权限(没有关键字)和private。

    CG国斌
  • Element表单嵌套数据验证

    除了在 Form 组件上一次性传递所有的验证规则外还可以在单个的表单域上传递属性的验证规则

    tianyawhl
  • Element表单嵌套数据验证

    除了在 Form 组件上一次性传递所有的验证规则外还可以在单个的表单域上传递属性的验证规则

    一只图雀
  • 最好的batch normalization 讲解

    batch normalization(Ioffe and Szegedy, 2015) 是优化深度神经网络中最激动人 心的最新创新之一。实际上它并不是一个优化...

    用户1908973
  • 速读原著-TCP/IP(Ping程序简介)

    “p i n g”这个名字源于声纳定位操作。 P i n g程序由Mike Muuss编写,目的是为了测试另一台主机是否可达。该程序发送一份 I C M P回显...

    cwl_java
  • 个人博客百度统计中恶意刷无关关键词解决方案

    作为个人站长,通过百度统计来查看网站的访问量,最近发现出现大量与本网站无关的关键词搜索统计,针对这一情况苦恼了很久,曾经也遇到类似的问题,解决方案是把个人博客的...

    用户1161110

扫码关注云+社区

领取腾讯云代金券