我尝试使用spark连接器(pyspark)将sparkDataframe保存到ignite缓存,如下所示:
df.write.format("jdbc") \
.option("url", "jdbc:ignite:thin://<ignite ip>") \
.option("driver", "org.apache.ignite.IgniteJdbcThinDriver") \
.option("primaryKeyFields", 'id') \
.option("dbtable", "ignite") \
.mode("overwrite") \
.save()
# .option("createTableOptions", "primary key (id)") \
# .option("customSchema", 'id BIGINT PRIMARY KEY, txt TEXT') \
我有个错误:
java.sql.SQLException: No PRIMARY KEY defined for CREATE TABLE
图书馆org.apache。ignite:ignite-spark-2.4:已安装2.9.0。我不能使用ignite格式,因为azure databricks使用的spring框架版本与org.apache中的spring框架版本冲突。ignite:ignite-spark-2.4:2.9.0. 所以我尝试使用jdbc瘦客户端。但我只能将数据读取/附加到现有缓存中。
我不能使用覆盖模式,因为我不能选择主键。有一个选择 primaryKeyFields
对于ignite格式,但它在jdbc上不起作用。jdbc customSchema
选项被忽略。这个 createTableOptions
在架构括号后添加主键语句,并出现sql语法错误。
有没有办法确定jdbc spark连接器的主键?
1条答案
按热度按时间wfsdck301#
下面是一个正确语法的示例,应该可以很好地工作:
如果这里出了什么问题,请告诉我。