阿帕契spark作业因非定型定制UDF挂起

阿帕契Spark作业因非确定式定制UDF挂起时学习怎么做

写由亚当巴夫拉卡

2022年5月10日

问题

apachespark作业因spark用户定义函数非定型行为无限期挂起举个例子说明此函数

scalaval转换orUDF=(注释Col:String){#UDF定义}val翻译Column=udf

if you call这个UDF使用带ColumnAPI并应用滤波转换数据FrameUDF可多次执行记录并影响应用性能

scalaval翻译DF=dfcolumn

因果

确定式UDF有时行为非确定性,执行重复引用视UDF定义而定数据Frame使用UDF添加列使用带ColumnAPI后对结果应用变换(过滤器)数据Frame.

求解

UDFs必须确定性优化后,重复引用可消除或函数可比查询中多引用次数

更好的选项是缓存数据Framewhere你使用UDFif数据Frame内含大量数据, 并写入Parquet格式文件最优性

可使用下列代码缓存结果:

scalaval翻译DF=dfcolumn


文章有帮助吗