首页 > Spark命令行中正常执行的代码,用Maven编译报错

Spark命令行中正常执行的代码,用Maven编译报错

Hi,all
我在idea中编写Spark程序,使用Maven编译会报错,但是将这段报错的代码贴到Spark-shell中能正常执行。这个问题很奇怪,求各位大神帮忙看下!


spark-shell中执行效果


使用Maven编译的报错结果信息

代码如下:


    case class ontime_table_schema(ratio: Double, score: Int)

    //准时率配置表
    val ontime_table_arr = Array(
      Array(0.00, 0),
      Array(0.90, 80),
      Array(0.97, 120)
    )

    //生成准时率DataFrame
    val ontime_table_rdd = sc.parallelize(ontime_table_arr)

    val ontime_table_df = ontime_table_rdd.map(p => ontime_table_schema(p(0), p(1).toInt)).toDF()

toDF不是RDD类型的方法,在shell中能用,说明是经过隐试转换的。
spark-shell中你可以看下当前scope下的隐试转换:

scala>:implicits -v

找到隐试转换之后,import到你的代码里应该就可以了

【热门文章】
【热门文章】