【问题标题】:"java.lang.IllegalAccessError" while reading multiline json file in Spark2.0在 Spark2.0 中读取多行 json 文件时出现“java.lang.IllegalAccessError”
【发布时间】:2020-11-08 14:53:04
【问题描述】:

在 Spark2.0 中读取多行 json 文件时出现异常

val data = spark.read
    .option("multiline",true)
    .json("C:\\user\\Spark\\DataSets\\employees_multiLine.json")

线程“主”java.lang.IllegalAccessError 中的异常:试图从类 org.apache.hadoop.mapreduce.lib.input.FileInputFormat 访问方法 com.google.common.base.Stopwatch.()V 在 org.apache.hadoop.mapreduce.lib.input.FileInputFormat.listStatus(FileInputFormat.java:262) 在 org.apache.spark.input.StreamFileInputFormat.setMinPartitions(PortableDataStream.scala:51) 在 org.apache.spark.rdd.BinaryFileRDD.getPartitions(BinaryFileRDD.scala:51) 在 org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:253) 在 org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:251)

【问题讨论】:

  • 您能分享您的示例 json 数据吗?我可以尝试使用实际数据构建解决方案。
  • 来自 javadoc:this error can only occur at run time if the definition of a class has incompatibly changed。如果你在运行时得到它,可能你有无效的库依赖树。是否有任何 IDE 或 SBT 警告?
  • @MikhailIonkin -- 通过添加 google guava 依赖,它得到了解决 com.google.guavaguava15.0依赖>
  • @ShantanuKher 在这里使用嵌套的 json [ { "name": "Nish", "product": "Headphone", "Delivery": { "name": "Nisha", "address" : "Chennai", "mob": "1234567" } }, { "name": "Gupta", "product": "T-shirt", "Delivery": { "name": "Guptans", "address" : "班加罗尔", "mob": "5738612" } } ]

标签: scala apache-spark-sql apache-spark-2.0


【解决方案1】:

hadoop 更新到 2.7.2 或更高版本将解决此问题。

这个问题在这里详细解释https://stackoverflow.com/a/36443787

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-25
    • 2014-03-01
    • 2022-10-07
    • 2023-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多