Apache spark 如何在spark的HiveQL中应用Windows函数
我看到过讨论这个问题的帖子。但我有一些问题Apache spark 如何在spark的HiveQL中应用Windows函数,apache-spark,pyspark,apache-spark-sql,hivecontext,Apache Spark,Pyspark,Apache Spark Sql,Hivecontext,我看到过讨论这个问题的帖子。但我有一些问题 由于是,因此只能在HiveContext中使用。如果我已经在使用SparkSQLContext,如何在SparkSQLContext和HiveContext之间切换 如何在此处使用windows函数运行HiveQL?我试过了 df.registerTempTable("data") from pyspark.sql import functions as F from pyspark.sql import Window 和本机配置单元SQL SE
df.registerTempTable("data")
from pyspark.sql import functions as F
from pyspark.sql import Window
SELECT col1, col2, RANK() OVER (PARTITION BY col1 ORDER BY col3) FROM data
但两者都不起作用
如果我已经在使用SparkSQLContext,如何在SparkSQLContext和HiveContext之间切换
你不能。Spark数据帧和表绑定到特定上下文。如果要使用HiveContext
,请一直使用它。您仍然可以拖动所有依赖项
如何在此处使用windows函数运行HiveQL
您使用的第一个查询完全无效。如果您使用正确的上下文和配置,第二个应该可以使用。谢谢!我正在使用HDInsight Spark,他们的内核将启动HiveContext和SparkContext。所以我想我可以在那里运行Windows功能。另外,是否可以在spark数据帧上运行HiveQL?不完全是这样。您可以注册表并使用
sqlContext.sql
,但Spark与HiveQL不完全兼容。通常情况下,这并不重要。谢谢!但在sqlcontext中是否也可以运行类似的windows函数呢?不,目前还没有
SELECT col1, col2, RANK() OVER (PARTITION BY col1 ORDER BY col3) FROM data
sqlContext = ... # HiveContext
sqlContext.sql(query)