在Pyspark HiveContext中,SQL OFFSET的等价物是什么?

时间:2017-03-02 16:30:41

标签: apache-spark hive pyspark

或者更具体的问题是如何处理一次不适合内存的大量数据?使用OFFSET,我试图做hiveContext.sql("选择...限制10偏移量10"),同时递增偏移量以获取所有数据,但偏移量似乎在hiveContext中无效。通常用于实现这一目标的替代方案是什么?

对于某些上下文,pyspark代码以

开头
from pyspark.sql import HiveContext
hiveContext = HiveContext(sc)
hiveContext.sql("select ... limit 10 offset 10").show()

1 个答案:

答案 0 :(得分:2)

您的代码看起来像

  from pyspark.sql import HiveContext
hiveContext = HiveContext(sc)
hiveContext.sql("    with result as
 (   SELECT colunm1 ,column2,column3, ROW_NUMBER() OVER (ORDER BY columnname) AS RowNum FROM tablename )
select colunm1 ,column2,column3 from result where RowNum >= OFFSEtvalue and  RowNum < (OFFSEtvalue +limtvalue ").show()

注意:根据您的要求更新以下变量tcolunm1,tablename,OFFSEtvalue,limtvalue