首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将此UDF转换为Pandas UDF

如何将此UDF转换为Pandas UDF
EN

Stack Overflow用户
提问于 2020-01-23 22:23:37
回答 1查看 180关注 0票数 0

我遇到了这个函数的一些性能问题,它的目标是如果字符串数组的字符串与val参数匹配,则返回True。我想将其转换为Pandas UDF。

代码语言:javascript
复制
def list_contains(val):
    # Perfom what ListContains generated
  def list_contains_udf(column_list):
    for element in column_list:
      if element.startswith(val):
        return True
    return False
  return udf(list_contains_udf, BooleanType())

我怎样才能做到这一点呢?

EN

回答 1

Stack Overflow用户

发布于 2020-01-24 17:32:37

受@jxc注释的启发,尝试在Databricks的单元格中使用下面的sql。

代码语言:javascript
复制
%sql
SELECT exists(column_list, element -> substr(element, 1, length(val)) == val)

我使用SQL理解的代码是使用substr来获取字符串element的头N (length(val))长度,以及它是否等于val本身。

否则,请参考PySpark文档的pyspark.sql.UDFRegistration(sparkSession)类,将相似的函数注册为UDF,组合使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59880762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档