我想过滤一个Dataframe,它有一个带有类别(list[string])的列。我想忽略所有类别无效的行。它们不在model.getcategories中时无效
def checkIncomingData(model: Model, incomingData: DataFrame) : DataFrame = {
val list = model.getCategories.toList
sc.broadcast(list)
incomingData.filter(incomingData("categories").isin(list))
}
不幸的是,我的方法不起作用,因为categories是一个列表,而不是一个元素。你知道是谁做的吗?
2条答案
按热度按时间qgelzfjb1#
只需展开列表:
注意:广播对你没有帮助。这是对驱动程序的评估。
amrnrhlw2#
我看到的第一个问题是您没有将广播分配给变量。
另外,你必须用
broadcastList.value
. 例如:注@lostinoverflow做出了重要贡献,他澄清了我的答案,并表示该方法
isin
实际上是在驱动程序中评估的,所以广播列表根本没有帮助,更重要的是,列表应该扩展以进行评估。