scala - rdd.map() 没有调用指定的函数
问题描述
我有一个包含 3 个项目的数据集。我使用每个项目调用一个函数,map()
但从未调用该函数。
object MyProgram {
val events = Seq("A","B","C")
def main(args: Array[String]): Unit = {
val spark = SparkSession
.builder
.appName("MyApp")
.config("spark.master", "local")
.getOrCreate()
import spark.implicits._
val eventsDS = events.toDS()
System.out.println("Before")
val tempDS = eventsDS.rdd.map(x => doSomething(x))
System.out.println("After")
}
def doSomething(event: String) : Unit = {
System.out.println("Do Something!")
}
}
输出:
前
后
解决方案
map
被懒惰地评估,你需要调用一个action
likeforeach
来执行计算:
eventsDS.foreach(doSomething _)
推荐阅读
- javascript - Slider Revolution 轮播覆盖单幻灯片过渡类型
- javascript - 在 Masterpage 中找不到“MainContentPlaceHolder”或在 ASP.NET 中返回 NULL
- pandas - 如果包含字符,则删除 Pandas DataFrame 行
- reactjs - 阻止 Google 自动填充用反应表单上的现有值覆盖字段
- ios - 在 Xcode 中的其他对象之间居中一组对象
- ruby - 删除/替换字符串中保留或无效的 url 字符
- google-bigquery - 如何将大查询表中的数据加载到其他数据库?(DB2)
- android - 如何在三个不同的活动中使用一个片段
- java - IntelliJ 升级后 Jar 文件不运行
- c# - 当不同的线程和库变量更改时更新 C# WPF GUI