問候,
在磚的文檔SQL它州支持JDBC連接,然而當連接到AWS紅移通過建在PostgreSQL驅動程序(“創建表格示例使用JDBC”和“JDBC: / / PostgreSQL /……”URI) I'm getting a weird error as follows:
”
org.apache.spark.sql.AnalysisException:
指定的模式不匹配實際的模式:
指定的:“id”INT, (…其他列編輯),實際:“id”INT, (…其他列編輯)。如果您正在使用
DataFrameReader。模式API或創建一個表,請不要指定模式。
或者如果你掃描一個存在的表,請刪除並重新創建它。
”
列的列表編輯了但是它是完全相同的列表在“指定的”和“實際”,似乎,而一些內部細節是不同的,而不是印刷DDL。
這是否意味著目前沒有辦法查詢AWS紅移作為外部數據存儲從磚SQL ?
謝謝,
克裏斯蒂安
@Cristian Constantinescu我們看到的問題是發生在dbr的10.1版本和3.2版本的火花,最近我們固定這個問題和修複即將推出的工作區。
你可以嚐試使用10.1 dbr筆記本和檢查問題是否可再生的和時間可以使用低版本的dbr筆記本。
從筆記本電腦火花的sql查詢是按預期工作。
這個問題似乎出現在使用“磚SQL”產品,例如當要求數據樣本或外部表上運行查詢時,通過PostgreSQL JDBC (JDBC的紅移URI) metastore。
最奇怪的是,這段代碼似乎把錯誤:
火花/ sql /核心/ src / main / scala /org/apache/spark/sql/execution/datasources/DataSource.scala
如果(baseRelation。模式! =模式){
362年把新AnalysisException (
363”指定的模式不匹配實際的模式:“+
364年代“指定:${模式。剛學會},實際:$ {baseRelation.schema.toDDL}。如果“+
365“你使用DataFrameReader。模式API或創建一個表,請不要“+
366年“指定模式。或者如果你掃描一個存在的表,請讓“+
367年“它並重新創建它。”)
368}
這意味著baseRelation。模式! =模式而模式。剛和baseRelation.schema。剛在我的例子中是相同的字符串。
希望這更好的描述問題。
謝謝你的興趣,解決這個問題!