在 Pyspark HiveContext 中,SQL OFFSET 的等价物是啥?
Posted
技术标签:
【中文标题】在 Pyspark HiveContext 中,SQL OFFSET 的等价物是啥?【英文标题】:In Pyspark HiveContext what is the equivalent of SQL OFFSET?在 Pyspark HiveContext 中,SQL OFFSET 的等价物是什么? 【发布时间】:2017-03-02 16:30:41 【问题描述】:或者更具体的问题是如何处理无法一次放入内存的大量数据?使用 OFFSET 我试图做 hiveContext.sql("select ... limit 10 offset 10") 同时增加偏移量以获取所有数据,但偏移量在 hiveContext 中似乎无效。通常用于实现此目标的替代方法是什么?
对于某些上下文,pyspark 代码以
开头from pyspark.sql import HiveContext
hiveContext = HiveContext(sc)
hiveContext.sql("select ... limit 10 offset 10").show()
【问题讨论】:
Hive 不给它,但它可以用 cte 和行号 achivsd @sandeeprawat 你能提供一个小例子或指点我的功能吗? 【参考方案1】:你的代码看起来像
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
【讨论】:
以上是关于在 Pyspark HiveContext 中,SQL OFFSET 的等价物是啥?的主要内容,如果未能解决你的问题,请参考以下文章
PySpark 无法通过 sparkContext/hiveContext 读取 Hive ORC 事务表?我们可以使用 Pyspark 更新/删除配置单元表数据吗?
无法使用 pyspark 从 hive 表中查询复杂的 SQL 语句