scala – 使用SparkSession创建广播变量? Spark 2.0
发布时间:2020-12-16 10:05:51 所属栏目:安全 来源:网络整理
导读:是否可以使用SparkSession提供的sparkContext创建广播变量?我在sc.broadcast下不断收到错误,但是在使用org.apache.spark.SparkContext的SparkContext时,在另一个项目中我没有遇到任何问题. import org.apache.spark.sql.SparkSessionobject MyApp { def mai
是否可以使用SparkSession提供的sparkContext创建广播变量?我在sc.broadcast下不断收到错误,但是在使用org.apache.spark.SparkContext的SparkContext时,在另一个项目中我没有遇到任何问题.
import org.apache.spark.sql.SparkSession object MyApp { def main(args: Array[String]){ val spark = SparkSession.builder() .appName("My App") .master("local[*]") .getOrCreate() val sc = spark.sparkContext .setLogLevel("ERROR") val path = "C:Boxesgithub-archive2015-03-01-0.json" val ghLog = spark.read.json(path) val pushes = ghLog.filter("type = 'PushEvent'") pushes.printSchema() println("All events: "+ ghLog.count) println("Only pushes: "+pushes.count) pushes.show(5) val grouped = pushes.groupBy("actor.login").count() grouped.show(5) val ordered = grouped.orderBy(grouped("count").desc) ordered.show(5) import scala.io.Source.fromFile val fileName= "ghEmployees.txt" val employees = Set() ++ ( for { line <- fromFile(fileName).getLines() } yield line.trim ) val bcEmployees = sc.broadcast(employees) } } 或者是使用Set()而不是Seq对象的问题? 谢谢你的帮助 编辑: 我在intellij中不断收到“无法解析符号广播”错误信息 遵守后我得到一个错误: 解决方法
您的sc变量的类型为Unit,因为根据
docs,setLogLevel具有返回类型Unit.改为:
val sc: SparkContext = spark.sparkContext sc.setLogLevel("ERROR") 跟踪变量类型以便及早发现错误非常重要. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |