__all__ = [
"DataType", "NullType", "StringType", "BinaryType", "BooleanType", "DateType",
"TimestampType", "DecimalType", "DoubleType", "FloatType", "ByteType", "IntegerType",
"LongType", "ShortType", "ArrayType", "MapType", "StructField", "StructType"]
我必须编写一个UDF(在pyspark中),它返回一个元组数组。第二个参数是udf方法的返回类型,我该给它什么呢?它应该是ArrayType(TupleType())
行上的东西。。。
火花中没有
TupleType
这样的东西。产品类型用特定类型的字段表示为structs
。例如,如果要返回一个成对数组(整数、字符串),可以使用如下架构:示例用法:
Stackoverflow一直在引导我回答这个问题,所以我想我会在这里添加一些信息。
从UDF返回简单类型:
当整数不够时:
从UDF返回复杂数据类型:
向UDF传递多个参数:
这段代码纯粹是为了演示目的,上面所有的转换都可以在Spark代码中使用,并且会产生更好的性能。 正如上面注释中的@zero323,在pyspark中通常应该避免udf;返回复杂类型应该使您考虑简化逻辑。
对于scala版本而不是python。 版本2.4
树的结构是这样的。
相关问题 更多 >
编程相关推荐