适应你的现有Apache为砖火花代码

本文概述了需要改变去适应现有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 ()从结构化和类似的命令流媒体的应用程序。

信任砖来配置您的集群

砖配置的所有驱动程序和执行器的设置在您的计算集群自动弹性最大化和资源使用。提供自定义配置执行人或JVM可以导致性能降低。砖建议只设置火花必需的配置,控制类型处理或功能逻辑保持一致。

运行您的工作负载

现在你已经删除模式、命令和设置可能会妨碍砖执行,你可以在测试环境中运行的工作负载并比较性能和结果遗留基础设施。虽然许多您的团队的技能可能已经发展到Apache火花工作负载的解决和改善性能仍然可以利用在砖上,经常可以看到更大的收益中使用新功能升级步骤Apache火花,三角洲湖,或自定义数据砖产品。