在 pySpark 中动态推断从 UDF 返回对象的模式



我想在pySpark中使用UDF,它不返回原子值,而是返回嵌套结构。我知道我可以注册 UDF 并手动设置它将返回的对象的模式,例如

format = ArrayType(
                   StructType([
                               StructField('id',IntegerType()),
                               StructField('text',StringType())
                              ]
                  )
spark.udf.register('functionName', functionObject, format)

并在 UDF 中使用 python 列表来匹配格式,例如

return [[1,'A'],[2,'B']]

但是有没有办法避免在注册 UDF 时显式设置返回类型,而是自动推断其架构?

如果我不设置返回类型,它会自动设置为 StringType .

有没有办法避免在注册 UDF 时显式设置返回类型,而是自动推断其架构?

没有。在调用 udf 之前必须知道架构,并且不能在运行时推断它。

相关内容

  • 没有找到相关文章