Rav*_*avi 7 persist apache-spark
我正在尝试使用Spark中的持久性功能将数据保存在内存中并对其进行计算.我假设将数据存储在内存中会使迭代算法的计算速度更快,例如MLlib中的K-means聚类.
val data3 = sc.textFile("hdfs:.../inputData.txt")
val parsedData3 = data3.map( _.split('\t').map(_.toDouble))
parsedData3.persist(MEMORY_ONLY)
Run Code Online (Sandbox Code Playgroud)
对persist的调用会引发以下错误:
scala> parsedData3.persist(MEMORY_ONLY)
<console>:17: error: not found: value MEMORY_ONLY
parsedData3.persist(MEMORY_ONLY)
Run Code Online (Sandbox Code Playgroud)
有人可以帮我解决如何正确使用persist将数据保存在内存中以便在迭代算法中使用吗?
maa*_*asg 14
如果你看一下存在的签名rdd.persist:def persist(newLevel: StorageLevel): this.type 你可以看到它的值为'StorageLevel',所以在你的例子中调用persist的正确方法是:
parsedData3.persist(StorageLevel.MEMORY_ONLY)
Run Code Online (Sandbox Code Playgroud)
StorageLevel的伴随对象 定义了这些常量,因此将其置于上下文中将允许您直接使用常量(如在代码中)
import org.apache.spark.storage.StorageLevel._
...
parsedData3.persist(MEMORY_ONLY) // this also works
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16364 次 |
| 最近记录: |