Im Allgemeinen müssen Sie eine StructType
erstellen, die Ihr Schema darstellt. A StructType
enthält eine Array[StructField]
, wobei jedes Element des Arrays einer Spalte in Ihrem Schema entspricht. Eine StructField
kann jede unterstützte DataType
sein - einschließlich einer anderen StructType
für verschachtelte Schemas.
ein Schema anlegen kann so einfach sein wie:
val schema = StructType(Array(
StructField("col1", StringType),
StructField("col2", LongType)
))
Wenn Sie ein Schema aus einem komplexen Datensatz generiert werden sollen - eine, die StructTypes
verschachtelte enthält - dann Sie wahrscheinlich eine rekursive Funktion erstellen müssen . Ein gutes Beispiel dafür, wie eine solche Funktion aussieht, finden Sie in der spark-avro
Integrationsbibliothek. Die Funktion toSqlType nimmt ein Avro
Schema und konvertiert es in einen Spark StructType
.
http://stackoverflow.com/a/35372282/1560062 – zero323