2017-07-19 46 views
0

(使用Apache火花版本1.6) 我提到以下鏈接嘗試unpivot的特點: unpivot in spark-sql/pyspark棧()的火花SQL - 運行時異常

這裏的問題在執行時,我得到了一些運行時異常:

df.select($"A", expr("stack(2, 'large', large, 'small', small) as (c, d)")).where("c is not null or b is not null") 

例外:

User class threw exception: java.lang.Exception: Application failed with 1 errors: Action UnPivot3: java.lang.RuntimeException: [1.10] failure: identifier expected 
stack(2, 'large', large,'small', small) as (c, d) 
^ 
at scala.sys.package$.error(package.scala:27) 
at org.apache.spark.sql.catalyst.SqlParser$.parseExpression(SqlParser.scala:49) 
at org.apache.spark.sql.functions$.expr(functions.scala:1076) 

1)不知道如何解決這個問題? 2)任何有關stack()的文檔幫助都會很棒。

回答

1

在其中加入堆棧承諾:https://github.com/apache/spark/commit/d0d28507cacfca5919dbfb4269892d58b62e8662爲吉拉票:https://issues.apache.org/jira/browse/SPARK-16286

它的修復版本星火2.0,所以你必須更新你的星火版本至少2.0使用堆棧功能

+0

是否有任何替代在1.6中實現相同的功能?我不能改變在服務器上部署的spark版本。 – Shabeel

+0

@Shabeel我不這麼認爲,但它是沒有問題的範圍;)你可以嘗試爆炸函數 –