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

Py4JJavaError:调用o3858.save时出错:org . Apache . spark . spark异常:写入作业中止

万志专
2023-03-14

我正在尝试使用数据帧将数据写入宇宙数据库df_u,我已经在写入McgMd中定义了配置。我正在使用火花版本3.2.1

代码-

  df_u.write.format("cosmos.oltp").options(**writeMcgMd).mode("append").save()

二手 -

writeMcgMd = {
  "spark.cosmos.accountEndpoint" : "https://cccc.azure.com:443/",
  "spark.cosmos.accountKey" : "ccc",
  "spark.cosmos.database" : "cccc",
  "spark.cosmos.container" : "ccc",
#   "spark.cosmos.write.strategy": "ItemOverwrite"
}

来自数据砖群集的驱动程序日志中的错误 [ 标准错误] -

wn在组织上修剪(逻辑计划:30) 在组织上.sql.催化剂.计划.逻辑.分析帮助.转换向下用修剪(分析帮助标度:268) 在组织.apache.spark.sql.catalyst.plans.逻辑.逻辑.分析帮助转化Down使用运行$(分析帮助缩放:264) 在组织 apache.spark.sql.catalyst.plans.逻辑.转换在组织apache.spark.sql.催化剂.计划.逻辑逻辑计划转换在组织上运行(逻辑计划:30) 在组织apache.spark.sql.catalyst.plans.逻辑逻辑计划转换逻辑计划:30) at org.apache.spark.sql.catalyst.trees.TreeNode.transformDown(TreeNode.scala:565) at org.apache.spark.sql.execution.queryExecution.$anonfun$渴望执行命令 $1(查询执行:156) 在 org.apache.spark.sql.catalyst.plan.logical.analysisHelper$.allowInvokingTransformsInAna(分析帮助 scala:324) 在 org.apache.spark.sql.execution.queryExpeion.急切地执行(查询执行:156) 在 org.apache.scala:156)org.apache.spark.sql.execution.queryExecution.commandExecuted$lzycompute(QueryExecution.scala:141) at org.apache.spark.sql.execution.QueryExecution.commandExecuted(QueryExecution.scala:132) at org.apache.spark.sql.execution.QueryExpertion.assertCommandExecuted(查询执行.scala:186) at org.apache.spark.sql.DataFrameWriter.runCommand(DataFrameRiter.scala:956) at org.apache.spark.sql.DataFrameriter.saveInternal(DataFrameWriter.scala:346) at在太阳.sql.本机方法访问调用(方法.java:498) 在 sun.反射.本机方法访问调用0(本机方法)在 sun.反射.本机方法访问调用(本机方法访问命令.java:62) 在太阳反射.委派方法访问访问命令调用(委派方法访问命令.java:43) 在 java.lang.reflect.方法调用(方法.java:498) 在 py4j.反射.方法调用(方法.java:244) 在 py4j.反射反射引擎.java:380) 在 py4j.Gateway.invoke(Gateway.java:295) at py4j.commands.abstractCommand.invoke方法(抽象命令.java:132) 在 py4j.commands.callCommand.execute(呼叫命令.java:79) 在 py4j.网关连接.run(网关连接.java:251) 在 java.lang.Thread.run(线程.java:748) 由: 组织.apache.spark.Spark异常引起的:作业因阶段失败而中止:阶段 17.0 中的任务 2 失败 4 次,最近的失败:阶段 17.0 中的任务 2.3 丢失 (TID 200) (10.240.26.5 执行器 0): java.lang.非法报告异常:要求失败:id 是必填字段。但它丢失了,或者它不是一个字符串。Json: {“_attachments”:“附件/”,“数据库名称”:“mwhcicm”,“lastloadtime”:“01-01-1900”,“父名”:“Mary”,“查询”:“选择 x, y, z, a, \tLEFT(文本,4000) 作为文本,活动,\t更新日期,\t插入日期,\tRefNoteSubjectID,'x' 作为源数据库,getdate() 作为处理日期从 o ”,“记录类型”:“元数据”,“架构”:“dbo”,“表名”:“o”,“where_col1”:“更新日期

Driver stacktrace: at org.apache.spark.scheduler.DAGScheduler.failJobAndindedenStages(DAGScheduler.scala:2984) at org.apache.spark.scheduler.daGScheduler.$anonfun$中止Stage$2(DAGScheduler.scala:2931) at org.apache.spark.scheduler.daGScheduler.$anonfun$中止Stage$2$adapted(DAGScheduler.scala:2925) at scala.collection.mutable.foreach(ResizableArray.scala:62) at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:55) at scala.collection.mutable.resizeableArray.foreach$(ResizableArray.scala:55)scala.collection.mutable.ArrayBuffer.foreach(数组Buffer.scala:49) at org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:2925) at org.apache.spark.scheduler.DAGScheduler.$anonfun$handleTaskSetFailed$1(DAGScheduler.scala:1345) at org.apache.spark.scheduler.daGScheduler.$anonfun$handleTaskSetFailed$1$adapted(DAGScheduler.scala:1345) at scala.Option.foreach(Option.scala:407) at org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:1345) at org.apache.spark.scheduler.scheduler.daGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:3193) at org.apache.spark.util.EventOp.eventop$$anon$1.run(EventLoop.scala:49) at org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:1107) at org.apache.spark.runJobInternal(SparkContext.scala:2637) at org.apache.spark.runJob(SparkContext.scala:2620) at org.apache.spark.sql.execution.datasources.v2.V2TableWriteExec.writeWithV2(写入到DataSourceV2Exec.scala:371) ...46 更多 原因: java.lang.非法描述异常: 要求失败: id 是必填字段。但它丢失了,或者它不是一个字符串。Json:

共有1个答案

越伟泽
2023-03-14

java.lang.IllegalArgumentException:需求失败:id是必填字段。但它不存在,或者不是字符串

此错误表示您传递给交付给服务的JSON文档的值没有必要的ID字段。

由于这个必要的属性“id;”不存在,输入显示无效。

若要解决此问题,请指定带有字符串值的 id 属性作为文档的一部分。

使用这种方法,我们在我们的环境中复制了相同的场景,并且成功了。

确保安装了CosmosDB Spark连接器库。

下面是示例代码,

缺少 ID 属性的引用。

 类似资料:
  • 我是PySpark的新手。我一直在用测试样本编写代码。一旦我在更大的文件上运行代码(3gb压缩)。我的代码只做了一些过滤和连接。关于py4J,我一直在出错。 任何帮助都是有益的,我们将不胜感激。 回来 更新:我使用的是py4j 10.7,刚刚更新到10.8 更新(1):添加spark。驾驶员内存: 汇总返回错误: 更新(2):我通过更改spark默认值尝试了这一点。conf文件。仍在获取错误PyS

  • 我在运行Python 3.6.5的Jupyter笔记本和运行3.7.2的Python shell中出现了这个错误。我的操作系统是Windows10。我在这两种环境中都安装了pip pyspark。两者都使用Spark Version2.4.0,而我的Java JDK是Oracle JDK Version8,JDK1.8.0_201。这是我在这两种情况下运行的代码: 这里:Spyder中的PySpa

  • 我想按照spark网站上的说明为spark安装graphframes,但命令: <代码>pyspark--打包graphframes:graphframes:0.8.1-spark3.0-s\u 2.12 不适合我。 我尝试了多种安装方法,但决定继续下载graphframes。jar,将其添加到Spark的常规列表中。jar文件并将其手动添加到代码spark中。sparkContext。addPy

  • 使用“file_loads”技术通过Apache Beam数据流作业写入BigQuery时出错。流式插入(else块)工作正常,符合预期。file_load(如果块)失败,错误在代码后面给出。bucket中GCS上的临时文件是有效的JSON对象。 来自pub/sub的原始事件示例: 数据流作业出错:

  • 我是一个学生,我真的被Py4JJavaError这个问题卡住了两个星期,在互联网上没有太多;我真的需要帮助: 请帮帮我这是下周要做的项目

  • 我正试图使用Jupyter笔记本中的以下代码将数据框写入本地目录中的拼花地板文件: 我得到以下错误: 我检查了所有系统变量:Hadoop_home、Java_home、Spark_home、Scala_home、Pyspark_python、Pyspark_driver_python。 我已经使用Hadoop v2.7和Scala 2.12.4安装了Spark v3.2,更新到v2.12.10。我