parquet 合並元數據


合並元數據:兩個數據集,有着一部分相同的列,將他們合並成一個數據集時merge的過程。

合並的規則:相同的列,在新的數據集中,是通用的列,

各自不同的列,也作為新的數據集的列。

 

Spark將數據寫入到HDFS中的parquet為例: 

准備連個json文件(StudentInfo1.json,StudentInfo2.json),上傳到HDFS中: 

 

 

spark程序代碼如下:

public   static   void  main(String[] args) {

SparkConf conf = new SparkConf() 
            .setAppName("MergeSchema");//.setMaster("local");
        JavaSparkContext sc = new JavaSparkContext(conf);
        SQLContext sqlContext = new SQLContext(sc);
        
        DataFrame studentInfo1 = sqlContext.read().format("json").load("hdfs://spark1:9000/StudentInfo1.json");
        studentInfo1.write().mode(SaveMode.Append).save("hdfs://spark1:9000/StudentInfo.parquet");
        
        DataFrame studentInfo2 = sqlContext.read().format("json").load("hdfs://spark1:9000/StudentInfo2.json");
        studentInfo2.write().mode(SaveMode.Append).save("hdfs://spark1:9000/StudentInfo.parquet");
        
        DataFrame studentInfo =sqlContext.read().option("mergeSchema""true")
                .parquet("hdfs://spark1:9000/StudentInfo.parquet");
        
        studentInfo.printSchema();
        
        studentInfo.show();
    }

 

運行后的輸出為:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM