2016-04-06 7 views
1

私は、タイムスタンプとマシンIDを含むSpark Data Frameを持っています。私は各グループから最低のタイムスタンプ値を削除したいと思います。私は、次のコードを試みた:HiveContextを使用してSparkの最小値を含む行以外の行を選択します。

sqlC <- sparkRHive.init(sc) 
ts_df2<- sql(sqlC,"SELECT ts,Machine FROM sdf2 EXCEPT SELECT MIN(ts),Machine FROM sdf2 GROUP BY Machine") 

しかし、次のエラーが来ている:

16/04/06 06:47:52 ERROR RBackendHandler: sql on 35 failed 
Error in invokeJava(isStatic = FALSE, objId$id, methodName, ...) : 
org.apache.spark.sql.AnalysisException: missing EOF at 'SELECT' near 'EXCEPT'; line 1 pos 35 

問題は何ですか? HiveContextがEXCEPTキーワードをサポートしていない場合、HiveContextで同じことをする同義の方法は何ですか?スパークで

答えて

1

スパーク1.6.1サポート番組やサポートされていないハイブ機能のプログラミング・ガイド1.6.1 http://spark.apache.org/docs/latest/sql-programming-guide.html#supported-hive-features

私はどちらかのカテゴリを除いて表示されません。私はHive QLがEXCEPTをサポートしていないか、少なくともその時点ではサポートしていなかったことを見ました。 Hive QL Except clause

おそらく分のテーブルを試し、その答えのように左外部結合を実行しますか?私はあなたがあなたの分DATAFRAME最初

exceptDF <- except(df, df2) 
+0

感謝トンを作成する必要があると思いますけれどもあなたはまた、()以外sparkR組み込み関数を使用することができます

SELECT ts, Machine FROM ts mins LEFT OUTER JOIN ts mins ON (ts.id=mins.id) WHERE mins.id IS NULL; 

!! – ps30

関連する問題