如何利用 Pandas UDF 将 Shapely 函数与 Spark Dataframes 一起使用?

问题描述 投票:0回答:0

有一个使用 Shapely 函数 concave_hull 和 MultiPoint 的 udf:

def get_concavehull(Multi_Point: Iterator[pd.Series]) -> Iterator[pd.Series]:
    print(type(Multi_Point))
    return Multi_Point.apply(lambda x: concave_hull(MultiPoint(x), ratio = 1.0))

get_concavehull_udf = pandas_udf(get_concavehull, returnType=StringType())

如何让它与 Spark 数据框一起使用?已经针对 dataframe 的 pandas 版本对其进行了测试并且它可以工作,但是当我在 Spark 中应用它时它会抛出错误'TypeError:iteration over a 0-d array'。

在这里,我将底层函数应用于 Pandas 数据框。

这里我将创建的 udf 应用到 Spark 数据帧。数据是一样的。

pandas apache-spark user-defined-functions shapely
© www.soinside.com 2019 - 2024. All rights reserved.