Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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 任何人都有在RDD中减去长的问题_Scala_Apache Spark_Long Integer_Rdd_Subtraction - Fatal编程技术网

Scala 任何人都有在RDD中减去长的问题

Scala 任何人都有在RDD中减去长的问题,scala,apache-spark,long-integer,rdd,subtraction,Scala,Apache Spark,Long Integer,Rdd,Subtraction,我对在RDD中减去long以过滤掉RDD中某个时间范围内的项目有一个问题 因此,我的代码使用successfulAuctions对象(Long、Int、String)过滤案例类拍卖的RDD: successfulAuctions对象由timestamp:Long、itemID:Int和direction:String(买入/卖出)组成 relevantAuctions函数基本上使用尾部递归来查找时间范围内的精确项目和方向的拍卖 @tailrec def relevantAuctions(au

我对在RDD中减去long以过滤掉RDD中某个时间范围内的项目有一个问题

因此,我的代码使用successfulAuctions对象(Long、Int、String)过滤案例类拍卖的RDD:

successfulAuctions对象由timestamp:Long、itemID:Int和direction:String(买入/卖出)组成

relevantAuctions函数基本上使用尾部递归来查找时间范围内的精确项目和方向的拍卖

@tailrec
  def relevantAuctions(auction: Auction, successfulAuctions: List[(Long,     String, String)]): Boolean = successfulAuctions match {
    case sample :: xs => if (isRelevantAuction(auction, sample) )    true else relevantAuctions(auction, xs)
    case Nil => false
  }
def isRelevantAuction(auction: Auction, successfulAuction: (Long, String, String)): Boolean = {
(successfulAuction.timestampNanos - auction.timestampNanos) >= 0 &&
  (successfulAuction.timestampNanos - auction.timestampNanos) < 10000000L &&
  auction.itemID == successfulAuction.itemID &&
  auction.direction== successfulAuction.direction
 }
然后,这将传入if语句中的另一个方法,该方法检查样本中的时间戳是否在10ms范围内,并且条目ID与方向相同

@tailrec
  def relevantAuctions(auction: Auction, successfulAuctions: List[(Long,     String, String)]): Boolean = successfulAuctions match {
    case sample :: xs => if (isRelevantAuction(auction, sample) )    true else relevantAuctions(auction, xs)
    case Nil => false
  }
def isRelevantAuction(auction: Auction, successfulAuction: (Long, String, String)): Boolean = {
(successfulAuction.timestampNanos - auction.timestampNanos) >= 0 &&
  (successfulAuction.timestampNanos - auction.timestampNanos) < 10000000L &&
  auction.itemID == successfulAuction.itemID &&
  auction.direction== successfulAuction.direction
 }
有没有人经历过这种现象


谢谢

对于FP中的练习,用fold替换tailrec函数。Hi@zero323不确定上面的代码将做什么。上面的代码每次只提供0L<代码>auction.TimestampNano-auction.TimestampNano=0L对吗?除非我有误解。对不起,我想写的是
auction.timestamnos-successfulfauction.timestamnos
@zero323我看不到你的原始评论。你想说什么?@Reactormonk在这种情况下折叠会很有用,因为我不是输出一个列表,而是一个布尔值。