1

Der folgende Code liest einen Spark DataFrame aus einer Parkettdatei und schreibt ihn in eine andere Parkettdatei. Nullable, das in ArrayType DataType abgelegt wurde, wird geändert, nachdem der DataFrame in eine neue Parquet-Datei geschrieben wurde. Code:Feld "Nullable" wird beim Schreiben eines Spark-Datenrahmens geändert

SparkConf sparkConf = new SparkConf(); 
    String master = "local[2]"; 
    sparkConf.setMaster(master); 
    sparkConf.setAppName("Local Spark Test"); 
    JavaSparkContext sparkContext = new JavaSparkContext(new SparkContext(sparkConf)); 
    SQLContext sqc = new SQLContext(sparkContext); 
    DataFrame dataFrame = sqc.read().parquet("src/test/resources/users.parquet"); 
    StructField[] fields = dataFrame.schema().fields(); 
    System.out.println(fields[2].dataType()); 
    dataFrame.write().mode(SaveMode.Overwrite).parquet("src/test/resources/users1.parquet"); 


    DataFrame dataFrame1 = sqc.read().parquet("src/test/resources/users1.parquet"); 
    StructField [] fields1 = dataFrame1.schema().fields(); 
    System.out.println(fields1[2].dataType()); 

Ausgang: arraytype (IntegerType, false) arraytype (IntegerType, true)

Spark-Version ist: 1.6.2

Antwort

2

Wie jetzt, für Spark 2.0 oder vor allem die Spalten von Funken sQL geschrieben sind NULL-Werte zulässt, diese von der offiziellen Führung ist

Parquet is a columnar format that is supported by many other data processing systems. Spark SQL provides support for both reading and writing Parquet files that automatically preserves the schema of the original data. When writing Parquet files, all columns are automatically converted to be nullable for compatibility reasons. 

https://github.com/apache/spark/blob/master/docs/sql-programming-guide.md

+0

Gibt es einen guten Grund dafür? Wie lauten die Kompatibilitätsprobleme, wenn die Spalten nicht automatisch in Nullwerte umgewandelt werden? – Naresh

+0

Ich kenne die Antwort nicht wirklich. Aber ich denke, es verbindet sich damit, wie man den Dataframe ausgibt. – chanllen

Verwandte Themen