在开发spark程序中,sqlContext函数不能完全实现业务逻辑,所以会引入hiveContext,解决TOP_N问题

异常报错:

在开发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问题。

解决办法:

在开发spark程序中,sqlContext函数不能完全实现业务逻辑,所以会引入hiveContext,解决TOP_N问题

开发任务写的完整sql如图,(使用oracle数据库时,字段大写)

在开发spark程序中,sqlContext函数不能完全实现业务逻辑,所以会引入hiveContext,解决TOP_N问题

即可解决异常

在开发spark程序中,sqlContext函数不能完全实现业务逻辑,所以会引入hiveContext,解决TOP_N问题