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();
}
运行后的输出为:


parquet 合并元数据的更多相关文章
- sparksql parquet 合并元数据
java public class ParquetMergeSchema { private static SparkConf conf = new SparkConf().setAppName(&q ...
- 39、Parquet数据源之自动分区推断&合并元数据
一.自动分区推断 1.概述 表分区是一种常见的优化方式,比如Hive中就提供了表分区的特性.在一个分区表中,不同分区的数据通常存储在不同的目录中, 分区列的值通常就包含在了分区目录的目录名中.Spar ...
- 【Hadoop】namenode与secondarynamenode的checkpoint合并元数据
Checkpoint Node(检查点节点) NameNode persists its namespace using two files: fsimage, which is the latest ...
- load、save方法、spark sql的几种数据源
load.save方法的用法 DataFrame usersDF = sqlContext.read().load("hdfs://spark1:9000/users.pa ...
- spark SQL学习(数据源之parquet)
Parquet是面向分析型业务得列式存储格式 编程方式加载数据 代码示例 package wujiadong_sparkSQL import org.apache.spark.sql.SQLConte ...
- 大数据:Parquet文件存储格式
一.Parquet的组成 Parquet仅仅是一种存储格式,它是语言.平台无关的,并且不需要和任何一种数据处理框架绑定,目前能够和Parquet适配的组件包括下面这些,可以看出基本上通常使用的查询引擎 ...
- 大数据:Parquet文件存储格式【转】
一.Parquet的组成 Parquet仅仅是一种存储格式,它是语言.平台无关的,并且不需要和任何一种数据处理框架绑定,目前能够和Parquet适配的组件包括下面这些,可以看出基本上通常使用的查询引擎 ...
- Parquet 格式文件
Apache Parquet是Hadoop生态圈中一种新型列式存储格式,它可以兼容Hadoop生态圈中大多数计算框架(Hadoop.Spark等),被多种查询引擎支持(Hive.Impala.Dril ...
- NameNode是如何存储元数据的?
1.NN的作用 保存HDFS上所有文件的元数据! 接受客户端的请求! 接受DN上报的信息,给DN分配任务(维护副本数)! 2.元数据的存储 元数据存储在fsiamge文件+edits文件中! fsim ...
随机推荐
- Objective-C浅拷贝和深拷贝
浅拷贝就是对内存地址的复制,让目标对象指针和源对象指向同一片内存空间 如: char* str = (char*)malloc(100);char* str2 = str; 浅拷贝只是对对象的简单拷贝 ...
- Orchard站点性能优化-预热
Orchard CMS 包含一个 Warmup Module 模块,当我们的站点在共享主机上的时候,它可以显著的帮助我们快速响应用户访问请求.当你开启这个模块以后,你设置的URL的里面的内容会缓存起来 ...
- python中的迭代
#迭代Python的for循环不仅可以用在list或tuple上,还可以作用在其他可迭代对象上. #list这种数据类型虽然有下标,但很多其他数据类型是没有下标的,但是,只要是可迭代对象,无论有无下标 ...
- python编写工具及配置(notepad++)
学长跟我说老师实验室里用的ide是pycharm,我用了一天,整体还行,就是加载速度太慢,可是第二天用的时候就卡的想让人骂街,cpu占有率趋近100%,电脑配置不高,我寻思不能因为这个就马上换电脑吧, ...
- git和GItHub的区别
git是一个版本控制工具.github是一个用git做版本控制的项目托管平台. 这有点类似于Wordpress和Wordpress.com的关系,前者是一个任何人都可以用的免费博客系统,后者是一个平台 ...
- html 7大知识点
HTML是web前端开发的基础,学习前端的人都是先从html学起的. 关于HTML有一些必备的知识点,这些知识点都是HTML中最基本的内容,也是前端面试最常问的知识点. 1.网页结构网页结构一般都包含 ...
- 基于RSA securID的Radius二次验证java实现(PAP验证方式)
基于rsa SecurID的二次验证.RSA server自身可以作为Radius服务器,RSA也可以和其他的软件集合,使用其他的server作为Radius服务器. radius的验证的一般流程如下 ...
- Python3 将configparser从ini文件中读取的内容转换成字典格式
因为写脚本的用到了,所以研究了下怎么将configparser从ini文件中读取的内容转换成字典格式. 整理一下,希望能对大家有帮助. 从http://stackoverflow.com/questi ...
- BZOJ 1018
program bzoj1018; type node=..] of boolean; pair=..] of boolean; var tot,c,i,j,k,x1,y1,x2,y2:longint ...
- [python]通过urllib2设置代理访问网址
#!/usr/bin/env pythonimport urllib2 # change followings before useuser = 'foo'passwd = 'bar'proxyser ...