【发布时间】:2015-10-27 07:29:40
【问题描述】:
我正在为具有大量内部结构的复杂 JSON 数据集编写过滤器函数。传递单个列太麻烦了。
所以我声明了以下 UDF:
val records:DataFrame = = sqlContext.jsonFile("...")
def myFilterFunction(r:Row):Boolean=???
sqlc.udf.register("myFilter", (r:Row)=>myFilterFunction(r))
直觉上我认为它会像这样工作:
records.filter("myFilter(*)=true")
实际的语法是什么?
【问题讨论】:
-
您能再详细说明一下您的过滤器功能吗?使用
Row会抛弃DataFrame为您所做的许多优化。 -
过滤器相当复杂。记录的结构是几个 Map 字段,里面有一堆键值对
标签: apache-spark