2016-05-31 8 views

Antwort

0

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.

+0

Danke @ david-greif, aber ich bin nach ** automatische Schema Entdeckung/Inferenz **. Wie sollte ich die Daten testen und das Schema zusammenführen? –