广播变量无法获取所有数据
broadcast variable fails to take all data
使用collectasmap() 应用广播变量时,并非所有值都包含在广播变量中。例如
val emp = sc.textFile("...text1.txt").map(line => (line.split("\t")(3),line.split("\t")(1))).distinct()
val emp_new = sc.textFile("...text2.txt").map(line => (line.split("\t")(3),line.split("\t")(1))).distinct()
emp_new.foreach(println)
val emp_newBC = sc.broadcast(emp_new.collectAsMap())
println(emp_newBC.value)
当我检查 emp_newBC 中的值时,我发现并非 emp_new 中的所有数据都出现了。我错过了什么?
提前致谢。
问题是emp_new是元组的集合,而emp_newBC是广播映射。如果您正在收集地图,则会删除重复的键,因此您的数据较少。如果您想取回所有元组的列表,请使用
val emp_newBC = sc.broadcast(emp_new.collect())
使用collectasmap() 应用广播变量时,并非所有值都包含在广播变量中。例如
val emp = sc.textFile("...text1.txt").map(line => (line.split("\t")(3),line.split("\t")(1))).distinct()
val emp_new = sc.textFile("...text2.txt").map(line => (line.split("\t")(3),line.split("\t")(1))).distinct()
emp_new.foreach(println)
val emp_newBC = sc.broadcast(emp_new.collectAsMap())
println(emp_newBC.value)
当我检查 emp_newBC 中的值时,我发现并非 emp_new 中的所有数据都出现了。我错过了什么?
提前致谢。
问题是emp_new是元组的集合,而emp_newBC是广播映射。如果您正在收集地图,则会删除重复的键,因此您的数据较少。如果您想取回所有元组的列表,请使用
val emp_newBC = sc.broadcast(emp_new.collect())