【问题标题】:Use external library in pandas_udf in pyspark在pyspark的pandas_udf中使用外部库
【发布时间】:2019-08-29 08:43:21
【问题描述】:

可以在 pandas_udf 中使用像 textdistance 这样的外部库吗?我试过了,我得到了这个错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

我已尝试使用 Spark 版本 2.3.1。

【问题讨论】:

    标签: python pandas pyspark user-defined-functions


    【解决方案1】:

    您可以将textdistance 与您自己的代码一起打包(使用setup.py 和bdist_egg 构建一个egg 文件),并在运行spark 时使用选项--py-files 指定最终包。

    顺便说一句,错误消息似乎与 textdistance 完全无关。

    【讨论】:

      【解决方案2】:

      您可以使用 Spark UDF,例如实现 Ratcliff-Obershelp 函数:

      import textdistance
      
      def my_ro(s1,s2):
        d = textdistance.ratcliff_obershelp(s1,s2)
        return d
      
      spark.udf.register("my_ro", my_ro, FloatType())
      
      spark.sql("SELECT word1, word2, my_ro(word1,word2) as ro FROM spark_df")\
      .show(100,False)
      

      【讨论】:

        猜你喜欢
        • 2023-03-25
        • 2023-03-04
        • 1970-01-01
        • 1970-01-01
        • 2018-12-28
        • 2019-12-02
        • 2016-01-26
        • 2020-05-23
        • 1970-01-01
        相关资源
        最近更新 更多