Dataframe Spark:如何定义嵌套模式?

Dataframe Spark:如何定义嵌套模式?,dataframe,apache-spark,pyspark,Dataframe,Apache Spark,Pyspark,我是Apache Spark的新手,如果这是一个noob问题,请原谅我。我试图在读取数据集之前定义一个特定的模式,以加快处理速度。有几种数据类型我不知道如何定义(ArrayType和StructType) 以下是我正在使用的模式的屏幕截图: 以下是我到目前为止的情况: jsonSchema = StructType([StructField("attribution", ArrayType(), True), Struct

我是Apache Spark的新手,如果这是一个noob问题,请原谅我。我试图在读取数据集之前定义一个特定的模式,以加快处理速度。有几种数据类型我不知道如何定义(ArrayType和StructType)

以下是我正在使用的模式的屏幕截图:

以下是我到目前为止的情况:

jsonSchema = StructType([StructField("attribution", ArrayType(), True), 
                         StructField("averagingPeriod", StructType(), True),
                         StructField("city", StringType(), True),
                         StructField("coordinates", StructType(), True),
                         StructField("country", StringType(), True),
                         StructField("date", StructType(), True),
                         StructField("location", StringType(), True),
                         StructField("mobile", BooleanType(), True),
                         StructField("parameter", StringType(), True),
                         StructField("sourceName", StringType(), True),
                         StructField("sourceType", StringType(), True),
                         StructField("unit", StringType(), True),
                         StructField("value", DoubleType(), True)
                        ])
我的问题是:如何在属性列下说明名称和url,在averagingPeriod列下说明单位和值,等等


作为参考,这里是我使用的数据集:。

这里是数组类型和结构类型的示例。我认为对于所有其他专栏来说,这样做应该很简单

from pyspark.sql.types import *

jsonSchema = StructType([
    StructField("attribution", ArrayType(StructType([StructField("name", StringType()), StructField("url", StringType())])), True),
    StructField("averagingPeriod", StructType([StructField("unit", StringType()), StructField("value", DoubleType())]), True),
    # ... etc.
])