scala—使用spark jdbc写入postgresql[cidr]列

kokeuurv  于 2021-05-27  发布在  Spark
关注(0)|答案(0)|浏览(309)

我正在尝试通过jdbc向postgresql编写spark 2.4.4Dataframe。我用的是scala。

batchDF.
    write.
    format("jdbc").
    option("url", "jdbc:postgresql://...").
    option("driver", "org.postgresql.Driver").
    option("dbtable", "traffic_info").
    option("user", "xxxx").
    option("password", "xxxx").
    mode(SaveMode.Append).
    save()

其中一块地( remote_prefix )属于 CIDR 在我的表格中键入,但是 StringType 在我的Dataframe中,所以我不能按原样写:

ERROR: column "remote_prefix" is of type cidr but expression is of type character varying

我试着用以下方式来表达它:

option("customSchema", "remote_prefix CIDR")

withColumn("remote_prefix", functions.expr("CAST(remote_prefix AS CIDR)"))

但在这两种情况下,spark都返回了一个错误:

20/09/17 13:52:00 ERROR MicroBatchExecution: Query [id = xxx, runId = xxx] terminated with error
org.apache.spark.sql.catalyst.parser.ParseException: 
DataType cidr is not supported.(line 1, pos 14)

== SQL ==
remote_prefix CIDR
--------------^^^

我怎么才能避开这个?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题