如何在 aws glue dynamicframe 上创建过滤器以过滤掉一组(文字)值
How to create a filter on an aws glue dynamicframe that filters out set of (literal) values
在 glue 脚本中(运行 在 zeppelin notebook 中转发到 glue 中的开发端点),我从 glue table 创建了一个动态框架,我想过滤字段“名称”不在静态值列表中,即(“a”,“b”,“c”)。
过滤不相等的效果就像这样:
def unknownNameFilter(rec: DynamicRecord): Boolean = {
rec.getField("name").exists(_ != "a")
}
我已经尝试了几种方法,例如
!rec.getField("name").exists(_ isin ("a","b","c"))
但它给出了错误(值 isin 不是 Any 的成员),我只能在网络上找到 pyspark 示例和首先将动态帧转换为数据帧的示例(如果可能,我想阻止)。
非常感谢帮助,谢谢。
好的,找到我的答案,我会 post 为任何正在寻找它的人提供它,它已完成
!(knownevents.contains(eventname))
在过滤函数中像这样:
def unknownEventFilter(rec: DynamicRecord): Boolean = {
val knownevents = List("evt_a","evt_b")
rec.getField("name") match {
case Some(eventname: String) => !(knownevents.contains(eventname))
case _ => throw new IllegalArgumentException(s"Unable to extract field name")
}
}
val dfUnknownEvents = df.filter(unknownEventFilter)
在 glue 脚本中(运行 在 zeppelin notebook 中转发到 glue 中的开发端点),我从 glue table 创建了一个动态框架,我想过滤字段“名称”不在静态值列表中,即(“a”,“b”,“c”)。
过滤不相等的效果就像这样:
def unknownNameFilter(rec: DynamicRecord): Boolean = {
rec.getField("name").exists(_ != "a")
}
我已经尝试了几种方法,例如
!rec.getField("name").exists(_ isin ("a","b","c"))
但它给出了错误(值 isin 不是 Any 的成员),我只能在网络上找到 pyspark 示例和首先将动态帧转换为数据帧的示例(如果可能,我想阻止)。
非常感谢帮助,谢谢。
好的,找到我的答案,我会 post 为任何正在寻找它的人提供它,它已完成
!(knownevents.contains(eventname))
在过滤函数中像这样:
def unknownEventFilter(rec: DynamicRecord): Boolean = {
val knownevents = List("evt_a","evt_b")
rec.getField("name") match {
case Some(eventname: String) => !(knownevents.contains(eventname))
case _ => throw new IllegalArgumentException(s"Unable to extract field name")
}
}
val dfUnknownEvents = df.filter(unknownEventFilter)