如何在 spark 的 HiveQL 中应用 Windows 函数
how to apply Windows function in HiveQL in spark
我看过讨论 的帖子。但我有一些问题。
- 因为只能在HiveContext中使用。如果我已经在使用 SparkSQLContext,我该如何在 SparkSQLContext 和 HiveContext 之间切换?
这里怎么可能 运行 使用 windows 函数的 HiveQL?我试过了
df.registerTempTable("data")
from pyspark.sql import functions as F
from pyspark.sql import Window
%%hive
SELECT col1, col2, F.rank() OVER (Window.partitionBy("col1").orderBy("col3")
FROM data
和原生 Hive SQL
SELECT col1, col2, RANK() OVER (PARTITION BY col1 ORDER BY col3) FROM data
但它们都不起作用。
How can i switch between SparkSQLContext and HiveContext given i am already using SparkSQLContext?
你不能。 Spark 数据框和表绑定到特定上下文。如果你想用HiveContext
那就一直用吧。反正你拖了所有的依赖。
How is that possible to run a HiveQL using windows function here
sqlContext = ... # HiveContext
sqlContext.sql(query)
您使用的第一个查询根本无效。如果您使用正确的上下文和配置,第二个应该可以工作。
我看过讨论
- 因为只能在HiveContext中使用。如果我已经在使用 SparkSQLContext,我该如何在 SparkSQLContext 和 HiveContext 之间切换?
这里怎么可能 运行 使用 windows 函数的 HiveQL?我试过了
df.registerTempTable("data") from pyspark.sql import functions as F from pyspark.sql import Window
%%hive SELECT col1, col2, F.rank() OVER (Window.partitionBy("col1").orderBy("col3") FROM data
和原生 Hive SQL
SELECT col1, col2, RANK() OVER (PARTITION BY col1 ORDER BY col3) FROM data
但它们都不起作用。
How can i switch between SparkSQLContext and HiveContext given i am already using SparkSQLContext?
你不能。 Spark 数据框和表绑定到特定上下文。如果你想用HiveContext
那就一直用吧。反正你拖了所有的依赖。
How is that possible to run a HiveQL using windows function here
sqlContext = ... # HiveContext
sqlContext.sql(query)
您使用的第一个查询根本无效。如果您使用正确的上下文和配置,第二个应该可以工作。