2017-09-11 3 views
0

が動作していないが、それは以下のエラーで失敗しています。ハイブマージコマンドは、私は1.6.3スパークバージョンでスパークHiveContextを使用してハイブmergeコマンドを実行していますスパークにHiveContext

2017-09-11 18:30:33 Driver [INFO ] ParseDriver - Parse Completed 
2017-09-11 18:30:34 Driver [INFO ] ParseDriver - Parsing command: MERGE INTO emp_with_orc AS T USING SOURCE_TABLE AS S 
ON T.id = S.id 
WHEN MATCHED AND (S.operation = 1) THEN UPDATE SET a = S.a,b = S.b 
WHEN MATCHED AND (S.operation = 2) THEN DELETE 
WHEN NOT MATCHED THEN INSERT VALUES (S.id, S.a, S.b) 
2017-09-11 18:30:34 Driver [ERROR] HiveWriter - Error while executing the merge query. 
org.apache.spark.sql.AnalysisException: cannot recognize input near 'MERGE' 'INTO' 'emp_with_orc'; line 1 pos 0 
    at org.apache.spark.sql.hive.HiveQl$.createPlan(HiveQl.scala:318) 
    at org.apache.spark.sql.hive.ExtendedHiveQlParser$$anonfun$hiveQl$1.apply(ExtendedHiveQlParser.scala:41) 
    at org.apache.spark.sql.hive.ExtendedHiveQlParser$$anonfun$hiveQl$1.apply(ExtendedHiveQlParser.scala:40) 
    at scala.util.parsing.combinator.Parsers$Success.map(Parsers.scala:136) 
    at scala.util.parsing.combinator.Parsers$Success.map(Parsers.scala:135) 
    at scala.util.parsing.combinator.Parsers$Parser$$anonfun$map$1.apply(Parsers.scala:242) 
    at scala.util.parsing.combinator.Parsers$Parser$$anonfun$map$1.apply(Parsers.scala:242) 
    at scala.util.parsing.combinator.Parsers$$anon$3.apply(Parsers.scala:222) 
    at scala.util.parsing.combinator.Parsers$Parser$$anonfun$append$1$$anonfun$apply$2.apply(Parsers.scala:254) 
    at scala.util.parsing.combinator.Parsers$Parser$$anonfun$append$1$$anonfun$apply$2.apply(Parsers.scala:254) 
    at scala.util.parsing.combinator.Parsers$Failure.append(Parsers.scala:202) 
    at scala.util.parsing.combinator.Parsers$Parser$$anonfun$append$1.apply(Parsers.scala:254) 
    at scala.util.parsing.combinator.Parsers$Parser$$anonfun$append$1.apply(Parsers.scala:254) 
    at scala.util.parsing.combinator.Parsers$$anon$3.apply(Parsers.scala:222) 

sparkのHiveContextでACIDトランザクションマージコマンドがサポートされているかどうかわかりません。

この上の任意のヘルプは理解されるであろう。

答えて

1

スパークはUPDATESまたはDELETESので、例外が予想される動作ではサポートされていません。

2

あなたはMERGEは、この日のようスパークSQLでサポートされていないので、HIVE JDBCを介してそれを実行する必要がありますMERGE操作を使用します。

関連する問題