scala - Spark命令行中正常执行的代码,用Maven编译报错
本文介绍了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屋!
查看全文