交叉连接中的 Hive UDF 与 PySpark UDF

Hive UDF vs. PySpark UDF in Cross Join

我需要 运行 PySpark 中交叉连接数据集的一些 UDF。我想我可以分两步做到这一点:1> 首先进行交叉连接 2> 运行 UDF 在第一步的结果上。

在 Hive 中,这可以通过 运行ning UDF 和 CROSS JOIN 一步完成。也许 Hive 像 PySpark 一样在内部分两步执行此操作(假设我的理解是正确的)?或者有没有办法在 PySpark 中做同样的事情?

Spark的核心部分是在Java和Scala中实现的。无论您使用 Spark Scala API、Spark SQL 还是 PySpark,主要处理都在 JVM 中进行。

如果您使用像 Python UDF 这样的非本地 UDF,它需要内部额外的步骤,包括序列化 UDF 的输入数据,将数据移动到 Python,反序列化和 运行 Python 中的 UDF。然后,数据也将移回 JVM。据我所知,没有办法避免这种情况。