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();
        }

    运行后的输出为:

     

  • 相关阅读:
    高效、稳定开发功能的一些心得
    记录一些遗忘的程序基础知识
    Linux NFS
    Nginx Upstream模块
    Redis命令总结
    手动搭建redis集群(3台)
    laravel使用总结(二)
    InnoDB体系架构总结(二)
    laravel 设计思想简单了解
    Redis原理及集群相关知识
  • 原文地址:https://www.cnblogs.com/key1309/p/5332089.html
Copyright © 2011-2022 走看看