【发布时间】:2019-02-02 17:45:31
【问题描述】:
有没有办法选择整行作为列输入到 Pyspark 过滤器 udf 中?
我有一个复杂的过滤函数“my_filter”,我想将它应用到整个DataFrame:
my_filter_udf = udf(lambda r: my_filter(r), BooleanType())
new_df = df.filter(my_filter_udf(col("*"))
但是
col("*")
抛出一个错误,因为这不是一个有效的操作。
我知道我可以将数据帧转换为 RDD,然后使用 RDD 的过滤器方法,但我不想将其转换为 RDD,然后再转换回数据帧。我的 DataFrame 具有复杂的嵌套类型,因此当我再次尝试将 RDD 转换为 DataFrame 时,架构推断会失败。
【问题讨论】:
标签: pyspark apache-spark-sql user-defined-functions