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

查看:287
本文介绍了scala - 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到你的代码里应该就可以了

这篇关于scala - Spark命令行中正常执行的代码,用Maven编译报错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆