在开发spark程序中,sqlContext函数不能完全实现业务逻辑,所以会引入hiveContext,解决TOP_N问题
异常报错:
问题描述:
在开发spark程序中,sqlContext函数不能完全实现业务逻辑,所以会引入hiveContext,(用hiveContext中的开窗函数TOP-N)。
原因分析:
在SQLContext上下文是不支持开窗函数的,用他来解决TOP-N问题,写的sql有点复杂,执行效率相对较低,可使用HiveContext,使用row_number() over(partition by column_1 order by column_2 ) 开窗函数比较方便的解决TOP-N问题。
解决办法:
开发任务写的完整sql如图,(使用oracle数据库时,字段大写)
即可解决异常