Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 对数据流执行多重转换_Scala_Apache Spark_Spark Streaming_Dstream - Fatal编程技术网

Scala 对数据流执行多重转换

Scala 对数据流执行多重转换,scala,apache-spark,spark-streaming,dstream,Scala,Apache Spark,Spark Streaming,Dstream,我是个新手 我有包含两个值xy的流数据。比如说 1300 28754 3287 等等 从流数据中,我想得到最小的y值、最大的y值和x值的平均值。这需要输出如下(使用上面的示例): 2878754 我已经能够在单个转换/减少上计算这些值,但在单个转换上无法计算 下面是我当前的代码 val transformedStream = windowStream.map(line => { Array(line.split(" ")(0).toLong, line.split(

我是个新手

我有包含两个值xy的流数据。比如说

1300

28754

3287

等等

从流数据中,我想得到最小的y值、最大的y值和x值的平均值。这需要输出如下(使用上面的示例):

2878754

我已经能够在单个转换/减少上计算这些值,但在单个转换上无法计算

下面是我当前的代码

val transformedStream = windowStream.map(line => {
  Array(line.split(" ")(0).toLong, line.split(" ")(1).toLong)

val smallest: DStream[Double]  = transformedStream.reduce((a,b) => {
  Array(0, math.min(a(1), b(1)))
}).map(u => u(1).toDouble)

val biggest  = transformedStream.reduce((a,b) => {
  Array(0, math.max(a(1), b(1)))
}).map(u => u(1).toDouble)

val mean = transformedStream.reduce((a, b) => Array( (a(0) + b(0))/2 )).
  map(u => u(0).toDouble)
试试这个:

val spark: SparkSession = ???
import spark.implicits._

windowStream.transofrm( rdd => {
  val xy = rdd.map(_.split(" ")).collect {
    case Array(x, y) => (x.toLong, y.toLong)
  }
  xy.toDF("x", "y").agg(min("y"), max("y"), mean("x"))
  .as[(Long, Long, Double)].rdd
})
重要:

transformedStream.reduce((a, b) => Array( (a(0) + b(0))/2 )  

不计算
x

Spark的平均值是什么版本?@JacekLaskowski 1.6.1我知道它很旧,但我需要使用Akka Actor集成Spark。@JacekLaskowski我认为唯一的区别是
SQLContext
代替
SparkSession
。那么
xy.toDF
呢?我不记得它在2.0之前是否已经可用。@JacekLaskowski For
RDD[A]
A