scala中 “““ 使用方法

1.使用场景

用来定义原生字符串的字面量,里面可以包括特殊符号(保持字符串的原有格式)

2.代码示例

    /*
    * 可以使用 stripMargin(char) 来指定行分隔符,默认分隔符为 |
    * */
    val sql =
      """create table emp (
        |   id int,
        |   name string
        |);
        |"""

    // def stripMargin: String = stripMargin('|')

    val sql2 =
      """create table emp (
        #   id int,
        #   name string
        #);
        #""".stripMargin('#')
    
    println(sql)
    println(sql2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`aggregateByKey`是Spark的核心操作之一,除了Scala之外,它还支持Java、Python和R等多种语言。这里我将介绍Java和Python如何使用`aggregateByKey`操作。 Java使用`aggregateByKey`操作的方法Scala类似,只是语法有所不同。下面是一个Java使用`aggregateByKey`操作求每个key的平均值的示例: ```java JavaPairRDD<Integer, Integer> data = sc.parallelizePairs( Arrays.asList( new Tuple2<>(1, 2), new Tuple2<>(1, 4), new Tuple2<>(2, 1), new Tuple2<>(2, 3), new Tuple2<>(2, 5) ) ); JavaPairRDD<Integer, Tuple2<Integer, Integer>> aggregatedData = data.aggregateByKey( new Tuple2<>(0, 0), (acc, value) -> new Tuple2<>(acc._1 + value, acc._2 + 1), (acc1, acc2) -> new Tuple2<>(acc1._1 + acc2._1, acc1._2 + acc2._2) ); JavaPairRDD<Integer, Double> avgByKey = aggregatedData.mapValues(v -> v._1.doubleValue() / v._2); avgByKey.foreach(t -> System.out.println(t._1 + ": " + t._2)); ``` 在这个示例,我们首先创建了一个JavaPairRDD,然后使用`aggregateByKey`操作对每个key对应的value求和和计数。接着,我们使用`mapValues`操作将每个key对应的sum和count求平均值,最后输出结果。 Python使用`aggregateByKey`操作也很简单,下面是一个Python使用`aggregateByKey`操作求每个key的平均值的示例: ```python from pyspark import SparkContext sc = SparkContext("local", "aggregateByKey example") data = sc.parallelize([(1, 2), (1, 4), (2, 1), (2, 3), (2, 5)]) aggregated_data = data.aggregateByKey((0, 0), lambda acc, value: (acc[0] + value, acc[1] + 1), lambda acc1, acc2: (acc1[0] + acc2[0], acc1[1] + acc2[1])) avg_by_key = aggregated_data.mapValues(lambda v: float(v[0]) / v[1]) for k, v in avg_by_key.collect(): print(k, v) ``` 在这个示例,我们使用SparkContext创建了一个本地Spark应用程序,然后创建了一个RDD。接着,我们使用`aggregateByKey`操作对每个key对应的value求和和计数。最后,我们使用`mapValues`操作将每个key对应的sum和count求平均值,并输出结果。 希望这些示例能够帮助您更好地理解`aggregateByKey`操作在Java和Python使用方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值