2017-10-12 92 views
0

我有一個postgres數據庫(9.2),在模式中使用inet類型。我試圖用Spark(1.6)寫Postgres。爲什麼Spark Sql排除Inet數據類型?

df.write.mode(mode).jdbc(db, table, props) 

我將模式應用於df;

context.createDataFrame(rdd, schema()) 

並獲得在SPARK-13286描述的所有的BatchUpdateException錯誤是由於架構不匹配。該模式是需要Spark Sql數據類型的StructFields的StructType。有沒有辦法使這個工作與任何現有的Spark Sql數據類型?

回答

1

爲什麼Spark Sql排除Inet數據類型?

實際上,Spark不支持所有由不同JDBC源(不僅僅是RDBMS)使用的自定義類型。

這種方式使任何現有的Spark Sql數據類型的工作?

您可以使用查詢投的類型,這是火花(未測試)耗材:

spark.read.jdbc(url, "(SELECT CAST(inet_col AS TEXT) FROM table) AS t") 
相關問題