spark sql编程之实现合并Parquet格式的DataFrame的schema

简介: spark sql编程之实现合并Parquet格式的DataFrame的schema

首先说下什么是schema,其实这跟通俗来讲,与我们传统数据表字段的名称是一个意思。明白了这个,我们在继续往下看。


合并schema


首先创建RDD,并转换为含有两个字段"value", "square"的DataFrame

val squaresDF = spark.sparkContext.makeRDD(1 to 5).map(i => (i, i * i)).toDF("value", "square")

21de21353720b1c3423d21dca2e877c9.jpg然后以parquet格式保存

squaresDF.write.parquet("data/test_table/key=1")


然后在创建RDD,并转换为含有两个字段"value", "cube"的DataFrame

val cubesDF = spark.sparkContext.makeRDD(6 to 10).map(i => (i, i * i * i)).toDF("value", "cube")

835c3d904063ad8648bab772b6c0edc0.jpg然后以parquet格式保存


cubesDF.write.parquet("data/test_table/key=2")

最后合并schema

val mergedDF = spark.read.option("mergeSchema", "true").parquet("data/test_table")

2a5e9913d7fb6c9a69968360014b9b75.jpg

我们打印schema

mergedDF.printSchema()

e8b753e78dc83ecbd879dfa7b47b0c47.jpg

接着我们现实数据

mergedDF.show

4be30bdc539681241467fa36cc46050e.jpg

如果想合并schema需要设置mergeSchema 为true,当然还有另外一种方式是设置spark.sql.parquet.mergeSchema为true。


相关补充说明:


Hive metastore Parquet表格式转换


当读取hive的 Parquet 表时,Spark SQL为了提高性能,会使用自己的支持的Parquet,由配置 spark.sql.hive.convertMetastoreParquet控制,默认是开启的。

上面除了Parquet格式支持外,还有ProtocolBuffer, Avro, 和Thrift支持合并。


如何修改配置项:


可以通过SparkSession 的setConf 或则使用SQL命令

SET key=value

更多配置项如下:

5cc947ef714ffbb182104eef59a47c43.jpg

目录
相关文章
|
2月前
|
SQL 存储 分布式计算
|
3月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之怎么编写和执行Spark SQL
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
3月前
|
SQL 数据库
【SQL】已解决:SQL分组去重并合并相同数据
【SQL】已解决:SQL分组去重并合并相同数据
62 1
|
3月前
|
SQL
云架构数据倾斜问题之在SQL数据源读取查询时合并小文件如何解决
云架构数据倾斜问题之在SQL数据源读取查询时合并小文件如何解决
|
3月前
|
SQL 数据处理
SQL 能力问题之合并两个存在交叉的日期区间,如何解决
SQL 能力问题之合并两个存在交叉的日期区间,如何解决
|
4月前
|
SQL JSON 分布式计算
|
3月前
|
机器学习/深度学习 分布式计算 算法
Spark快速大数据分析PDF下载读书分享推荐
《Spark快速大数据分析》适合初学者,聚焦Spark实用技巧,同时深入核心概念。作者团队来自Databricks,书中详述Spark 3.0新特性,结合机器学习展示大数据分析。Spark是大数据分析的首选工具,本书助你驾驭这一利器。[PDF下载链接][1]。 ![Spark Book Cover][2] [1]: https://zhangfeidezhu.com/?p=345 [2]: https://i-blog.csdnimg.cn/direct/6b851489ad1944548602766ea9d62136.png#pic_center
128 1
Spark快速大数据分析PDF下载读书分享推荐
|
2月前
|
分布式计算 资源调度 大数据
【决战大数据之巅】:Spark Standalone VS YARN —— 揭秘两大部署模式的恩怨情仇与终极对决!
【8月更文挑战第7天】随着大数据需求的增长,Apache Spark 成为关键框架。本文对比了常见的 Spark Standalone 与 YARN 部署模式。Standalone 作为自带的轻量级集群管理服务,易于设置,适用于小规模或独立部署;而 YARN 作为 Hadoop 的资源管理系统,支持资源的统一管理和调度,更适合大规模生产环境及多框架集成。我们将通过示例代码展示如何在这两种模式下运行 Spark 应用程序。
165 3
|
1月前
|
机器学习/深度学习 分布式计算 大数据
Spark 适合解决多种类型的大数据处理问题
【9月更文挑战第1天】Spark 适合解决多种类型的大数据处理问题
39 3
下一篇
无影云桌面