parquet 合并元数据
2016-03-29 10:47
525 查看
合并元数据:两个数据集,有着一部分相同的列,将他们合并成一个数据集时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();
}
运行后的输出为:
合并的规则:相同的列,在新的数据集中,是通用的列,
各自不同的列,也作为新的数据集的列。
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();
}
运行后的输出为:
相关文章推荐
- web 获取select中被选中option的value和text
- Android酷炫UI效果
- UIButton上同时显示图片和文字的方法
- 不支持直接到存储查询(DbSet、DbQuery、DbSqlQuery、DbRawSqlQuery)的数据绑定。应使用数据填充 DbSet (例如通过对 DbSet 调用 Load),然后绑定到本地数据
- UIScrollViewDelegate
- Kendo UI常用示例汇总(三)
- 百度在线编辑器ueditor的使用
- LINQ Query Expressions
- UGUI 之soft clip
- iOS关于UITableView的用法和问题,都写到这里了!
- 一套漂亮的网站后台管理系统模板Flatty ui
- Android设计模式——Builder模式
- angular单元测试与自动化UI测试实践
- 在哪种情况下,QuerySet将从数据库中取值
- 《iOS Human Interface Guidelines》——Refresh Control
- 客户端GUI测试技术和自动化测试架构设计简谈
- 关于NGUI Input Axis Mouse ScrollWheel is not setup. 问题的解决
- LeetCode Implement Queue using Stacks
- 大数据协作框架Hue
- Uiautomator 2.0之Configrator类学习小记