spark中sqlContext函数不能完全实现业务逻辑,引入hiveContext,解决开窗函数TOP-N问题
异常报错:
问题描述:
1、为什么用hiveContext?
在开发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数据库读字段大写)
即可解决异常