Python NotImplementedError:具有分组映射UDF的返回类型无效
我的UDF输出模式包含以下字段:Python NotImplementedError:具有分组映射UDF的返回类型无效,python,pandas,apache-spark,pyspark,Python,Pandas,Apache Spark,Pyspark,我的UDF输出模式包含以下字段: Out[183]: [StructField(id,StringType,true), StructField(2018-01-01,StructType(List(StructField(real,FloatType,true),StructField(imag,FloatType,true))),true), StructField(2018-01-02,StructType(List(StructField(real,FloatType,true),S
Out[183]: [StructField(id,StringType,true),
StructField(2018-01-01,StructType(List(StructField(real,FloatType,true),StructField(imag,FloatType,true))),true),
StructField(2018-01-02,StructType(List(StructField(real,FloatType,true),StructField(imag,FloatType,true))),true),
StructField(2018-01-03,StructType(List(StructField(real,FloatType,true),StructField(imag,FloatType,true))),true),
StructField(2018-01-04,StructType(List(StructField(real,FloatType,true),StructField(imag,FloatType,true))),true),
StructField(2018-01-05,StructType(List(StructField(real,FloatType,true),StructField(imag,FloatType,true))),true),
StructField(2018-01-06,StructType(List(StructField(real,FloatType,true),StructField(imag,FloatType,true))),true),
StructField(2018-01-07,StructType(List(StructField(real,FloatType,true),StructField(imag,FloatType,true))),true),
StructField(2018-01-08,StructType(List(StructField(real,FloatType,true),StructField(imag,FloatType,true))),true),
...
属于以下类型:
Out[185]:pyspark.sql.types.StructType
我试图输出的是一个id为id
的列,而其余的列是包含两个浮点数的元组。下面是定义模式的代码,它基本上为不是id
的每一列定义StructType()
元组
fields = []
for f in json.loads(skeleton_schema.json())["fields"]:
if f["name"] != "id":
fields.append(StructField(f["name"], StructType([
StructField(FloatType(), True),
StructField(FloatType(), True)
]), True))
else:
fields.append(StructField.fromJson(f))
output_schema = StructType(fields)
但是,当运行我的UDF时,我会收到一个
NotImplementedError
,输出会打印出我的整个架构,并说它不受支持。什么是不支持的,我做错了什么?经过更多的调试,我发现嵌套结构类型不受支持。已找到支持的类型。您还可以检查哪些类型尚不受支持。