首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jdbc火花连接器(点燃)创建具有主键的表

如何使用jdbc火花连接器(点燃)创建具有主键的表
EN

Stack Overflow用户
提问于 2020-10-27 12:42:24
回答 1查看 1.5K关注 0票数 1

我正试图使用火花连接器(pyspark)将火花数据存储到点燃缓存中,如下所示:

代码语言:javascript
复制
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') \

我有个错误:

代码语言:javascript
复制
java.sql.SQLException: No PRIMARY KEY defined for CREATE TABLE

程序库org.apache.ignite:点燃-火花-2.4:2.9.0已安装。我不能使用点燃格式,因为azure使用了与org.apache.ignite中的spring框架版本冲突的spring框架版本-2.4:2.9.0。所以我尝试使用jdbc瘦客户机。但我只能将数据读取/追加到现有的缓存中。

我不能使用覆盖模式,因为我不能选择主键。有一个选项primaryKeyFields用于点燃格式,但它不适用于jdbc。jdbc customSchema选项被忽略。createTableOptions在架构括号和出现sql语法错误后添加主键语句。

是否有方法确定jdbc火花连接器的主键?

EN

回答 1

Stack Overflow用户

发布于 2020-10-30 13:57:45

下面是一个具有正确语法的示例,应该可以很好地工作:

代码语言:javascript
复制
 DataFrameWriter < Row > df = resultDF
  .write()
  .format(IgniteDataFrameSettings.FORMAT_IGNITE())
  .option(IgniteDataFrameSettings.OPTION_CONFIG_FILE(), configPath)
  .option(IgniteDataFrameSettings.OPTION_TABLE(), "Person")
  .option(IgniteDataFrameSettings.OPTION_CREATE_TABLE_PRIMARY_KEY_FIELDS(), "id, city_id")
  .option(IgniteDataFrameSettings.OPTION_CREATE_TABLE_PARAMETERS(), "template=partitioned,backups=1")
  .mode(Append);

如果这里出了什么问题,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64554684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档