【发布时间】: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.guava guava 15.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