交叉连接中的 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。据我所知,没有办法避免这种情况。
我需要 运行 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。据我所知,没有办法避免这种情况。