当前位置: 首页 > 知识库问答 >
问题:

Spark JDBC Oracle使用Append模式写入,如果Dataframe有不同的模式,还可以更改表模式

汝宏伯
2023-03-14

Spark JDBC Oracle使用Append模式编写,如果Dataframe具有不同的模式,也会更改表模式。是否有任何选项可以防止Spark在附加时更改oracle元数据?

共有1个答案

翁硕
2023-03-14

根据 spark sql 数据源的官方文档,请参阅 https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html。

可以使用创建表列类型 :创建表时要使用的数据库列数据类型,而不是默认值。数据类型信息应以与创建表列语法相同的格式指定(例如:“名称 CHAR(64),注释 VARCHAR(1024)”)。指定的类型应该是有效的 spark sql 数据类型。此选项仅适用于写入。

// Specifying create table column data types on write
jdbcDF.write
  .option("createTableColumnTypes", "name CHAR(64), comments VARCHAR(1024)")
  .jdbc("jdbc:postgresql:dbserver", "schema.tablename", connectionProperties)

例如,它使用postgresql,但是您可以使用oracle jdbc驱动程序。

 类似资料:
  • 有没有办法将数据帧模式序列化为json并在以后反序列化? 用例很简单:我有一个json配置文件,其中包含我需要读取的数据帧的模式。我希望能够从现有模式(在数据帧中)创建默认配置,并希望能够通过从json字符串读取来生成稍后使用的相关模式。

  • 在 redux 基本概念的不可变数据管理 中给出一些示例,演示了不可变的基本更新操作,例如,更新一个对象中一个字段,或者,在数组的末尾增加一个数据。然而,reducer 经常需要综合使用这些基本操作去处理更加复杂的任务。下面是一些你可能必须去实现的常见任务的例子。 更新嵌套的对象 更新嵌套数据的关键是必须适当地复制和更新嵌套的每个级别。这往往是那些学习 redux 一个难以理解的概念,当试图更新嵌

  • 问题内容: 我知道负载测试应在非GUI模式下运行。 但是, 当我使用以下命令运行测试时: 在非GUI模式下 :我得到的平均响应时间为3到4秒,这当然是不可接受的。 在GUI模式下 :平均响应时间为100ms。 测试非常简单,仅需5秒即可完成100个用户的HTTP请求(GET)。 如果不是这样,我什么也不会说。 我应该信任哪一个? 我的问题更多:发生了什么,如何找到问题? 问题答案: 非GUI模式比

  • 我有一个连续接收流插入的表(可能每秒数千个)。 我对使用更新功能(通过API调用)添加列感兴趣。我可以在数据仍在插入时调用Update将列添加到现有表中,而无需担心数据丢失吗? 作为参考,这是我计划用于向表中添加列的代码:

  • 我想更改数据库中< code>Employees表的模式名。当前表中的< code>Employees数据库模式名为< code>dbo,我想将其更改为< code>exe。我该怎么做? 例子: 从 收件人 我尝试了这个查询: 但是这给了我一个错误: 无法更改架构“exe”,因为它不存在或您没有权限。 我错过了什么?

  • 如果我们在Kafka中使用schema registry,是否要求每个生产者在每次将记录发送到代理时都发送当前版本的Kafka? 如果是,这额外的开销是什么意思,因为我们已经在每个avro文件中发送模式? 如果没有,请对我的问题的愚蠢感到遗憾,并请帮助我更好地理解模式注册表。