问题标签 [spark-jdbc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
28 浏览

apache-spark - 为什么 spark 只允许我使用 batchSize 1 将数据插入到我的数据库中?

我在本地模式下使用 spark,我的数据框不大,大约 148,000 行。每次我尝试将此数据帧插入我的数据库时,直到我指定一个 batchSize 选项为 1 时我才能这样做。我不明白为什么会发生这种情况。

0 投票
1 回答
473 浏览

apache-spark - Spark SQL表读取错误'引起:org.apache.spark.sql.AnalysisException:'*'在表达式'unresolvedextractvalue'中的使用无效'

我在 Eclipse 中的本地编写了一个示例 java spark sql 代码,以从远程 databricks 数据库表中读取数据,如下所示。我已经设置了 hadoop_home 并包含了 spark jdbc 驱动程序,但是每次运行我仍然低于错误。

当我运行上面的代码时,我得到以下错误

有人可以让我知道如何解决这个问题吗?

0 投票
0 回答
53 浏览

apache-spark - spark jdbc api 在访问具有 Map 数据类型列的配置单元表时出错

我有一个tableA具有以下格式的配置单元表:

我尝试使用以下代码加载数据库:

我的第二次尝试:

但是map<string,string>在将源配置单元表加载到 spark 数据集中时,列会导致问题。

线程“主”java.sql.SQLException 中的异常:org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$.getCatalystType(JdbcUtils.scala:247) 中的 org.apache.spark.sql 中不支持类型 JAVA_OBJECT。 execution.datasources.jdbc.JdbcUtils$.$anonfun$getSchema$1(JdbcUtils.scala:312) at scala.Option.getOrElse(Option.scala:189) at org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils $.getSchema(JdbcUtils.scala:312) 在 org.apache.spark.sql.execution.datasources.jdbc.JDBCRDD$.resolveTable(JDBCRDD.scala:63) 在 org.apache.spark.sql.execution.datasources.jdbc .JDBCRelation$.getSchema(JDBCRelation.scala:226) 在 org.apache.spark.sql.execution.datasources.jdbc.JdbcRelationProvider.createRelation(JdbcRelationProvider.scala:35) 在 org.apache.spark.sql.execution.datasources。 DataSource.resolveRelation(DataSource.scala:354) 在 org.apache.spark。sql.DataFrameReader.loadV1Source(DataFrameReader.scala:326) at org.apache.spark.sql.DataFrameReader.$anonfun$load$3(DataFrameReader.scala:308) at scala.Option.getOrElse(Option.scala:189) at org .apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:308) 在 org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:226)

0 投票
0 回答
27 浏览

apache-spark - 通过 Apache Spark 读取 Teradata 表时出现问题

我正在使用 Spark 读取 Teradata 表。这是我的代码:

我得到这个错误:

但是,我可以从 Teradata 表中看到所有需要的列:

输出:

为什么 Spark 无法读取表格以及为什么无法获取列的任何想法?

0 投票
1 回答
74 浏览

apache-spark - Spark JDBC“批量大小”对插入的影响

我想知道该batchsize选项对使用 spark jdbc 的插入操作有什么影响。这是否意味着使用类似于大容量插入的一个插入命令进行大容量插入,或者是在最后提交的一批插入命令?

有人可以澄清一下,因为文档中没有明确提到这一点吗?

0 投票
1 回答
45 浏览

mysql - 为什么即使指定了模式,Spark JDBC 也会推断表模式?

我正在使用spark.read.format("jdbc").option("query", tmpSql)从 Mysql 加载表,并且可以select * from (xxx) where 1=0从数据库监视器中看到查询,后来我知道该查询用于推断 Spark 中的表模式。但是,当我使用时spark.read.format("jdbc").option("query", tmpSql).schema(xxx),表模式推断查询仍然存在。为什么在已经指定 customSchema 时 Spark 仍然需要推断表模式?

0 投票
1 回答
82 浏览

apache-spark - 获取 py4j.protocol.Py4JJavaError: 调用 o65.jdbc 时出错。:java.sql.SQLException:不支持的类型TIMESTAMP_WITH_TIMEZONE

我正在使用 pyspark 与 Denodo 数据库建立 JDBC 连接。我要连接的表包含 2 列的“TIMESTAMP_WITH_TIMEZONE”数据类型。由于 spark 仅提供与少数 denodo 不属于其中一部分的 dbs 的内置 jdbc 连接,因此它无法识别“TIMESTAMP_WITH_TIMEZONE”数据类型,因此无法映射到其任何 spark sql 数据类型。为了克服这个问题,我提供了我的自定义架构(此处为 c_schema),但这并不正常,我遇到了同样的错误。下面是代码片段。

请让我知道我该如何解决这个问题。

0 投票
0 回答
16 浏览

apache-spark - 如何在 spark jdbc 中使用 subselect 对查询进行分区

我正在尝试在 spark jdbc 中执行按日期划分的查询 sql。我已经看到了许多带有单个表的示例,但是如何在带有过滤器的子选择的查询中做到这一点?

查询示例:

代码java示例:

有没有办法做到这一点?

0 投票
0 回答
18 浏览

sql-server - 执行程序 JDBC SQLSERVER 分区选项上的 Spark 转换错误

我首先使用以下方式读取下限和上限:

分别提取 Row row=query.collectasList().get(0).getString(0) as lowerbound and upperbound 然后通过下限和上限

我知道下限和上限必须是字符串,但是当通过时我面临以下问题,你能帮忙吗?面对这个问题在阶段 1.0 中丢失了任务 6.0(TID 7, , executor 1):

com.microsoft.sqlserver.jdbc.SQLServerException:从字符串转换日期和/或时间时转换失败。在 com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java

0 投票
1 回答
55 浏览

apache-spark - Pyspark Dataframe 到 AWS MySql:要求失败:驱动程序无法打开 JDBC 连接

我想将 pyspark 数据帧写入 AWS RDS 中的 MySQL 表,但我不断收到错误消息

我的代码如下所示:

我还尝试了 url 'jdbc:mysql://mtestdb.ch4i3d3jc0yc.eu-central-1.rds.amazonaws.com',但随后出现错误:

不知道我做错了什么。任何帮助将不胜感激