如何在pyspark中创建混合类型的数组?

kiz8lqtg  于 2024-01-06  发布在  Spark
关注(0)|答案(1)|浏览(119)

我想创建一个这样的数组:

  1. F.struct(F.array(struct_1, struct_2).alias('pair'))

字符串
当它被存储到JSON中时,存储的结果看起来像这样:

  1. {"pair": [{...struct_1...} , {...struct_2...}]
  2. {"pair": [{...struct_1...} , {...struct_2...}]
  3. ...


其中struct_1和struct_2是不同类型的结构体。但是我不能用数组这样做,因为数组不接受混合类型。我如何实现这一点?

6mw9ycah

6mw9ycah1#

不如这样:

  1. struct1 = StructType([
  2. StructField('id', IntegerType()),
  3. StructField('name', StringType())
  4. ])
  5. struct2 = StructType([
  6. StructField('value', DoubleType())
  7. data = [
  8. ( [struct1(1, 'a'), struct2(2.5)], ),
  9. ( [struct1(3, 'b'), struct2(5.5)], )
  10. ]
  11. df = spark.createDataFrame(data, ['pair'])

字符串

相关问题