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

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

clipboard.png
spark-shell中执行效果

clipboard.png
使用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()
阅读 3k
1 个回答

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

scala>:implicits -v

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进