2017-10-12 52 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")