-1

windows functionの使用法について議論している投稿を見たことがあります。しかし、いくつか質問があります。

  1. HiveContextでしか使えないので。SparkSQLContext を既に使用している場合、SparkSQLContext と HiveContext を切り替えるにはどうすればよいですか?
  2. ここで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

しかし、どちらも機能しません。

4

1 に答える 1

0

SparkSQLContext を既に使用している場合、SparkSQLContext と HiveContext を切り替えるにはどうすればよいですか?

それはいけません。Spark データ フレームとテーブルは、特定のコンテキストにバインドされます。使いたいなら最後までHiveContext使ってください。とにかく、すべての依存関係をドラッグします。

ここでWindows関数を使用してHiveQLを実行するにはどうすればよいですか

sqlContext = ...  # HiveContext 
sqlContext.sql(query)

最初に使用するクエリは単に無効です。2 つ目は、正しいコンテキストと構成を使用する場合に機能するはずです。

于 2016-03-02T02:35:04.437 に答える