zoukankan      html  css  js  c++  java
  • 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();
        }

    运行后的输出为:

     

  • 相关阅读:
    Zset-ZREVRANGEBYSCORE
    Zset-ZREVERANGE
    Zset-ZRANGEBYSCORE
    Leetcode1550. 存在连续三个奇数的数组
    Java中的IO流
    线程间通信(也叫线程并发协作)的四种方式
    数据库三大范式
    MVCC(Multi-Version Concurrency Control):多版本并发控制详解
    Java三种单例模式实现
    Java的序列化和反序列化
  • 原文地址:https://www.cnblogs.com/key1309/p/5332089.html
Copyright © 2011-2022 走看看