我试图在IntelliJ IDEA的运行一个简单的测试代码。这里是我的代码:运行星火计划与当地的IntelliJ
import org.apache.spark.sql.functions._
import org.apache.spark.{SparkConf}
import org.apache.spark.sql.{DataFrame, SparkSession}
object hbasetest {
val spconf = new SparkConf()
val spark = SparkSession.builder().master("local").config(spconf).getOrCreate()
import spark.implicits._
def main(args : Array[String]) {
val df = spark.read.parquet("file:///Users/cy/Documents/temp")
df.show()
spark.close()
}
}
我的依赖列表:
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.1.0</version>
<!--<scope>provided</scope>-->
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.1.0</version>
<!--<scope>provided</scope>-->
</dependency>
当我运行按钮点击,它抛出一个异常:
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.mapreduce.TaskID.<init>(Lorg/apache/hadoop/mapreduce/JobID;Lorg/apache/hadoop/mapreduce/TaskType;I)V
我检查这个post,但情况不要修改后不会改变。我能在IDEA中运行本地Spark应用程序吗?谢谢。
更新:我可以运行此代码火花提交。我希望直接运行IDEA中的运行按钮。
尝试删除明确的Hadoop依赖关系并依赖Spark的传递依赖关系。 (Spark引入了hadoop-client,它引入了hadoop-hdfs等)。你的问题可能在于你声明的cloudera依赖,这可能是不兼容的,因为它依赖于古老的MR1。你真的需要这种依赖吗? –
@RickMoritz我不一定需要那个dep。我只是删除所有hadoop deps,但没有工作。 –
有同样的错误? –