微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Databricks-java.lang.NoClassDefFoundError:org / json / JSONException

如何解决Databricks-java.lang.NoClassDefFoundError:org / json / JSONException

我们无法解决以下问题:我们正在尝试使用Apache Hudi将数据保存到存储中。问题是,当我们上传包含依赖项中的org.json包的胖罐时,df.save()应用程序失败了

java.lang.NoClassDefFoundError: org/json/JSONException
    at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeCreateTable(SemanticAnalyzer.java:10847)
    at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.genResolvedParseTree(SemanticAnalyzer.java:10047)
    at org.apache.hadoop.hive.ql.parse.SemanticAnalyzer.analyzeInternal(SemanticAnalyzer.java:10128)
    at org.apache.hadoop.hive.ql.parse.CalcitePlanner.analyzeInternal(CalcitePlanner.java:209)
    at org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer.analyze(BaseSemanticAnalyzer.java:227)
    at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:424)
    at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:308)
    at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:1122)
    at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1170)
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1059)
    at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1049)
    at org.apache.hudi.hive.HoodieHiveClient.updateHivesqls(HoodieHiveClient.java:384)
    at org.apache.hudi.hive.HoodieHiveClient.updateHivesqlUsingHiveDriver(HoodieHiveClient.java:367)
    at org.apache.hudi.hive.HoodieHiveClient.updateHivesql(HoodieHiveClient.java:357)
    at org.apache.hudi.hive.HoodieHiveClient.createTable(HoodieHiveClient.java:262)
    at org.apache.hudi.hive.HiveSyncTool.syncSchema(HiveSyncTool.java:176)
    at org.apache.hudi.hive.HiveSyncTool.syncHoodieTable(HiveSyncTool.java:130)
    at org.apache.hudi.hive.HiveSyncTool.syncHoodieTable(HiveSyncTool.java:94)
    at org.apache.hudi.HoodieSparksqlWriter$.org$apache$hudi$HoodieSparksqlWriter$$syncHive(HoodieSparksqlWriter.scala:321)
    at org.apache.hudi.HoodieSparksqlWriter$$anonfun$MetaSync$2.apply(HoodieSparksqlWriter.scala:363)
    at org.apache.hudi.HoodieSparksqlWriter$$anonfun$MetaSync$2.apply(HoodieSparksqlWriter.scala:359)

即使我转到群集库并显式添加this依赖关系,保存时仍然失败。另一方面,当我仅在笔记本中创建new JSONException("hello")时,一切似乎都可以正常工作。什么可能导致这种行为?谢谢

解决方法

这可能是因为jar无法进入执行程序节点,请尝试addJarhttps://spark.apache.org/docs/latest/api/java/org/apache/spark/SparkContext.html#addJar-java.lang.String-

,

您使用的是什么版本的Hudi?版本0.6.0中的JSON存在问题,并且存在opened issue。我建议您现在使用0.5.2版。

,

事实证明,问题在于 Metastore 服务和 spark 进程之间的类路径不同,因为它们在单独的 JVM 中运行。该问题已在将 jar 下载到类路径文件夹的初始化脚本中得到解决。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。