1
원자 값을 중첩하지 않고 pySpark에서 중첩 구조를 반환하는 UDF를 사용하고 싶습니다. UDF를 등록하고 반환 할 객체의 스키마를 수동으로 설정할 수 있다는 것을 알고 있습니다.pySpark의 UDF에서 반환 된 객체의 스키마를 동적으로 추론
format = ArrayType(
StructType([
StructField('id',IntegerType()),
StructField('text',StringType())
]
)
spark.udf.register('functionName', functionObject, format)
과 같은 형식으로 일치하도록 UDF 내부의 파이썬 목록을 사용하십시오.
return [[1,'A'],[2,'B']]
하지만 UDF를 등록 할 때 반환 유형을 설정 명시 적으로 피할 수있는 방법이있다, 대신 자동으로 스키마를 추론?
리턴 유형을 설정하지 않으면 자동으로 StringType
으로 설정됩니다.
하지만 spark-xml, csv 등으로 읽을 때 스키마를 알 수 없으며 런타임에 유추됩니다. 내 UDF에 사용할 수있는 기능이 있습니까? 스파크 리더는 스키마를 어떻게 추론합니까? – Johnny16