我想通过使用Oracle JDBC驱动程序将Spark DataFrame写入Oracle表。我的代码如下:
url = "jdbc:oracle:thin:@servername:sid"
mydf.write \
.mode("overwrite") \
.option("truncate", "true") \
.format("jdbc") \
.option("url", url) \
.option("driver", "oracle.jdbc.OracleDriver") \
.option("createTableColumnTypes", "desc clob, price double") \
.option("user", "Steven") \
.option("password", "123456") \
.option("dbtable", "table1").save()
我想要的是将desc列指定为clob类型,将price列指定为double precision类型。但是Spark告诉我不支持Clob类型。 desc字符串的长度约为30K。我真的需要你的帮助。谢谢
答案 0 :(得分:0)
根据此note,指定某些不支持的数据类型。如果目标表已经使用CLOB数据类型创建,则createTableColumnTypes可能是多余的。如果已经创建表,则可以使用spark jdbc检查是否可以写入CLOB列。
答案 1 :(得分:0)
使用所需的架构在mysql中创建表,现在使用mode ='append'并保存记录。
mode ='append'仅插入记录而不修改表模式。