【问题标题】:java.lang.NoSuchMethodError: parquet.Preconditions.checkState(ZLjava/lang/String;)Vjava.lang.NoSuchMethodError: parquet.Preconditions.checkState(ZLjava/lang/String;)V
【发布时间】:2015-10-24 22:13:28
【问题描述】:

运行 Spark 1.3.1 和 1.4.1 时出现以下错误

java.lang.NoSuchMethodError: parquet.Preconditions.checkState(ZLjava/lang/String;)V 在 parquet.schema.Types$PrimitiveBuilder.build(Types.java:314) 在 parquet.schema.Types$PrimitiveBuilder.build(Types.java:232) 在 parquet.schema.Types$Builder.named(Types.java:210) 在 org.apache.spark.sql.parquet.ParquetTypesConverter$$anonfun$fromDataType$1.apply(ParquetTypes.scala:314) 在 org.apache.spark.sql.parquet.ParquetTypesConverter$$anonfun$fromDataType$1.apply(ParquetTypes.scala:305) 在 scala.Option.map(Option.scala:145) 在 org.apache.spark.sql.parquet.ParquetTypesConverter$.fromDataType(ParquetTypes.scala:305) 在 org.apache.spark.sql.parquet.ParquetTypesConverter$$anonfun$4.apply(ParquetTypes.scala:395) 在 org.apache.spark.sql.parquet.ParquetTypesConverter$$anonfun$4.apply(ParquetTypes.scala:394) 在 scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) 在 scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) 在 scala.collection.immutable.List.foreach(List.scala:318) 在 scala.collection.TraversableLike$class.map(TraversableLike.scala:244) 在 scala.collection.AbstractTraversable.map(Traversable.scala:105) 在 org.apache.spark.sql.parquet.ParquetTypesConverter$.convertFromAttributes(ParquetTypes.scala:393) 在 org.apache.spark.sql.parquet.ParquetTypesConverter$.writeMetaData(ParquetTypes.scala:440) 在 org.apache.spark.sql.parquet.ParquetRelation2$MetadataCache.prepareMetadata(newParquet.scala:260) 在 org.apache.spark.sql.parquet.ParquetRelation2$MetadataCache$$anonfun$6.apply(newParquet.scala:27​​6) 在 org.apache.spark.sql.parquet.ParquetRelation2$MetadataCache$$anonfun$6.apply(newParquet.scala:269) 在 scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) 在 scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244) 在 scala.collection.immutable.List.foreach(List.scala:318) 在 scala.collection.TraversableLike$class.map(TraversableLike.scala:244) 在 scala.collection.AbstractTraversable.map(Traversable.scala:105) 在 org.apache.spark.sql.parquet.ParquetRelation2$MetadataCache.refresh(newParquet.scala:269) 在 org.apache.spark.sql.parquet.ParquetRelation2.(newParquet.scala:391) 在 org.apache.spark.sql.parquet.DefaultSource.createRelation(newParquet.scala:98) 在 org.apache.spark.sql.parquet.DefaultSource.createRelation(newParquet.scala:128) 在 org.apache.spark.sql.sources.ResolvedDataSource$.apply(ddl.scala:240) 在 org.apache.spark.sql.hive.execution.CreateMetastoreDataSourceAsSelect.run(commands.scala:218) 在 org.apache.spark.sql.execution.ExecutedCommand.sideEffectResult$lzycompute(commands.scala:54) 在 org.apache.spark.sql.execution.ExecutedCommand.sideEffectResult(commands.scala:54) 在 org.apache.spark.sql.execution.ExecutedCommand.execute(commands.scala:64) 在 org.apache.spark.sql.SQLContext$QueryExecution.toRdd$lzycompute(SQLContext.scala:1099) 在 org.apache.spark.sql.SQLContext$QueryExecution.toRdd(SQLContext.scala:1099) 在 org.apache.spark.sql.DataFrame.saveAsTable(DataFrame.scala:1121) 在 org.apache.spark.sql.DataFrame.saveAsTable(DataFrame.scala:1071) 在 org.apache.spark.sql.DataFrame.saveAsTable(DataFrame.scala:1037) 在 org.apache.spark.sql.DataFrame.saveAsTable(DataFrame.scala:1015) 在 com.xurmo.ai.spark.SparkClient.dataFrameToHiveTable(SparkClient.java:128) 在 com.xurmo.ai.xflow.operation.sink.DataFrameToPlatformSink.push(DataFrameToPlatformSink.java:79) 在 com.xurmo.ai.xflow.operation.sink.ASink.operate(ASink.java:24) 在 com.xurmo.ai.xflow.operation.AOperation.process(AOperation.java:121) 在 com.xurmo.ai.xflow.flow.executor.ExecutableOp.call(ExecutableOp.java:26) 在 com.xurmo.ai.xflow.flow.executor.ExecutableOp.call(ExecutableOp.java:15) 在 java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 在 java.util.concurrent.FutureTask.run(FutureTask.java:166) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 在 java.lang.Thread.run(Thread.java:722)

从日志中可以清楚地看出类加载器正在加载该类的其他版本。 谁能告诉我还有哪些jar包有这个类?

【问题讨论】:

  • 你能分享你的代码吗?

标签: apache-spark


【解决方案1】:

我也有同样的问题。 lib目录下有两个jar文件,其中包含Precondition Class

1.parquet-hadoop-bundle-1.6.0rc3.jar
2.parequet-hadooop-bundle-***.jar (which does not contain checkState method)

我只删除它

parequet-hadooop-bundle-***.jar 

来自 lib 目录的文件,现在它为我工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 2017-12-28
    • 2018-08-07
    相关资源
    最近更新 更多