1.
Caused by: java.lang.RuntimeException: Row arity of from does not match serializers.
at org.apache.flink.api.java.typeutils.runtime.RowSerializer.copy(RowSerializer.java:89)
at org.apache.flink.api.java.typeutils.runtime.RowSerializer.copy(RowSerializer.java:47)
at org.apache.flink.streaming.runtime.tasks.OperatorChain$CopyingChainingOutput.pushToOperator(OperatorChain.java:577)
... 22 more
這種情況就是你返回的row的類型和配置的輸出字段個數不匹配,也有可能是你的代碼出現了null值。
2.java.lang.NumberFormatException:For input string:" "
這個是因為空字符串在flink sql里面不能cast 為數值類型的,可以在你的代碼腳本里面,對於空字符串設置為null,row.setField(i, null)
3.Exception in thread "main" org.apache.flink.table.api.TableException: Result field does not match requested type. Requested: String; Actual: Long
這種情況有可能是你的表對應的返回字段格式不正確,還有可能是你沒有導入
import org.apache.flink.streaming.api.scala._ 這個隱式轉換,很坑!!!
4. SQL parse failed. Lexical error at line 4, column 3. Encountered: "\uff0c" (65292), after : ""
Flinksql語句中的特殊符號 , 你可能用了中文輸入法,切換英文輸入法即可
5.Exception in thread "main" org.apache.flink.table.api.TableException: Field reference expression or alias on field expression expected.
字段中使用了別名
6.datastream row類型map的時候需要隱式轉換
導入這個即可 import org.apache.flink.api.scala._
一般需要隱式轉換的時候,不管是datastream api和table api導入以下幾個依賴試試即可:
import org.apache.flink.api.scala._
import org.apache.flink.table.api.scala._
import org.apache.flink.streaming.api.scala._
7. Class 'class SQL.WindowTest$Student$3' described in type information 'SQL.WindowTest$Student$3(id: String, name: String, score: Long)' must be static and globally accessible.