适应你的现有Apache为砖火花代码
本文概述了需要改变去适应现有Apache火花工作负载运行在砖上。无论你是搬到砖从一个本地集群中,自定义云计算基础设施,或另一个企业Apache提供火花,大多数工作负载只需要一些小的修改进入生产。砖延伸、简化和改善性能的Apache火花通过引入自定义优化,配置和部署的基础设施,并保持在砖运行时的依赖关系。
改变拼花
来δ
砖建议使用三角洲湖而不是拼花或者兽人当写入数据。砖已优化的很多特性与表由三角洲湖、交互时效率和升级数据和代码形式铺三角洲湖只需要几个步骤。看到数据迁移拼花湖三角洲湖。
因为三角洲湖提供了酸事务担保,您可以简化工作量删除工作区面向在Apache中创建pseudo-transactionality火花操作。例子包括:
建立一个目录结构或分区从一个给定的操作策略,允许所有文件被发现同时作为分区的一部分。
配置或依靠metastore添加事务性如何发现新的数据。
使用
MSCK修复
注册文件写入metastore表。使用
改变表添加分区
手动添加分区表。
看到当在砖分区表。
请注意
您可以运行工作负载没有升级使用的数据格式,但许多砖上最伟大的性能收益直接挂钩三角洲湖。
重新编译Apache火花代码与数据砖运行时库兼容
每个版本的砖运行在Apache配置与所需的许多库火花的应用程序。你可以安装附加的库计算的要求,但whenenever可能的,砖推荐使用的库版本打包在砖运行时检测的兼容性。每个砖运行时版本包括所有安装库的列表。看到砖的运行时版本说明。
删除SparkSession创建命令
许多遗留Apache火花工作负载显式地声明一个新的SparkSession为每个工作。砖自动创建一个SparkContext计算集群,并创建一个孤立SparkSession每个笔记本或对集群执行工作。您可以维护本地编译和测试代码的能力,然后部署到砖的升级使用这些命令.getOrCreate SparkSession.builder () ()
。
删除终端脚本命令
Apache的火花需要程序显式地声明,他们完成通过使用命令等sys.exit ()
或sc.stop ()
。砖自动终止和清理工作完成,所以这些命令是没有必要的,应该被删除。
砖也自动终止和清理结构化流负载终止运行,所以您可以删除awaitTermination ()
从结构化和类似的命令流媒体的应用程序。