Use Data Source API in SparkSQL 使用问题

为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:

【TiDB 版本】
4.0
【问题描述】
https://github.com/pingcap/tispark/blob/master/docs/datasource_api_userguide.md#use-spark-connector
使用这个文档中的Use Data Source API in SparkSQL
User class threw exception: java.lang.NoSuchMethodError: org.apache.spark.sql.catalyst.plans.logical.InsertIntoTable.copy(Lorg/apache/spark/sql/catalyst/plans/logical/LogicalPlan;Lscala/collection/immutable/Map;Lorg/apache/spark/sql/catalyst/plans/logical/LogicalPlan;ZZ)Lorg/apache/spark/sql/catalyst/plans/logical/InsertIntoTable;

at org.apache.spark.sql.extensions.TiResolutionRule$$anonfun$resolveTiDBRelations$1.applyOrElse(rules.scala:66)

at org.apache.spark.sql.extensions.TiResolutionRule$$anonfun$resolveTiDBRelations$1.applyOrElse(rules.scala:61)

at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformUp$1.apply(TreeNode.scala:289)

at org.apache.spark.sql.catalyst.trees.TreeNode$$anonfun$transformUp$1.apply(TreeNode.scala:289)

at org.apache.spark.sql.catalyst.trees.CurrentOrigin$.withOrigin(TreeNode.scala:70)

at org.apache.spark.sql.catalyst.trees.TreeNode.transformUp(TreeNode.scala:288)

at org.apache.spark.sql.extensions.TiResolutionRule.apply(rules.scala:59)

at org.apache.spark.sql.extensions.TiResolutionRule.apply(rules.scala:29)
报这些错误,能帮忙看看什么问题吗


若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。

请问下主要是想通过 spark 解决什么问题,如果是大规模的并行计算需求,可以考虑下 5.0 GA 中的 MPP 功能,可以参考下:https://docs.pingcap.com/zh/tidb/stable/release-5.0.0#mpp-架构

不是的,数据量很小, 就是想使用下Use Data Source API in SparkSQL这种方式通过spark任务往tidb中插入数据,但是报错了。

你这边 spark-defaults.conf 配置方便提供下吗?另外 spark 的版本是多少?

spark版本是2.3
这些都按要求配了
spark.tispark.pd.addresses=
spark.tispark.tidb.addr=
spark.tispark.tidb.port=
spark.tispark.write.allow_spark_sql=

感觉是 spark 的问题,可以参考下 https://stackoverflow.com/questions/40128956/getting-exception-java-lang-nosuchmethoderror-scala-reflect-api-javauniverse/40129570 试试