为什么Spark Sql会排除Inet数据类型?

时间:2017-10-12 14:36:54

标签: apache-spark apache-spark-sql spark-dataframe

我有一个在架构中使用inet类型的postgres数据库(9.2)。我试图用Spark(1.6)写到postgres。

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

我将架构应用于df with;

context.createDataFrame(rdd, schema())

并且由于架构不匹配而导致SPARK-13286中描述的所有BatchUpdateException错误。模式是StructField的StructType,需要Spark Sql DataType。有没有办法使这个工作与任何现有的Spark Sql数据类型一起使用?

1 个答案:

答案 0 :(得分:1)

  

为什么Spark Sql会排除Inet数据类型?

实际上,Spark不支持所有不同JDBC源(不仅仅是RDBMS)使用的自定义类型。

  

如何使用任何现有的Spark Sql数据类型?

您可以使用查询转换为Spark可以使用的类型(未经测试):

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