我正在尝试通过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
--------------^^^
我怎么才能避开这个?
暂无答案!
目前还没有任何答案,快来回答吧!