【发布时间】:2016-05-06 13:58:26
【问题描述】:
我正在尝试在使用 spark 时获取特定中标拍卖时的拍卖列表过滤列表。
获胜的拍卖 RDD 和完整的拍卖 DD 由案例类组成,格式为:case class auction(id: String, prodID: String, timestamp: Long)
我想过滤在同一产品 ID 上在赢得拍卖后 10 秒内发生拍卖的完整拍卖 RDD,并接收完整的 RDD。
我试图像这样过滤它:
val specificmessages = winningauction.map(it =>
allauctions.filter( x =>
x.timestamp > it.timestamp - 10 &&
x.timestamp < it.timestamp + 10 &&
x.productID == it.productID
)
)
由于无法进行嵌套转换,有没有办法执行此操作?
还有另一个答案,但这主要处理嵌套地图SPARK-5603 nested map funcitons
【问题讨论】:
-
尝试查看
cartesianspark.apache.org/docs/latest/api/scala/… 来构建一个新的RDD并应用你的过滤器 -
未经测试:val specificmessages = allauctions.cartesian(winningauction).filter((x, y) => x.timestamp > y.timestamp - 10 && x.timestamp
-
是的,感谢您提醒我有关笛卡尔函数的信息。它绝对是一种享受。您可以将其添加为答案吗?
标签: scala apache-spark rdd