关于Spark RDD的问题很少。请有人赐教。
我可以看到RDD分布在各个节点上,这是否意味着 分布式RDD缓存在每个节点的内存中或将该RDD数据缓存 驻留在hdfs磁盘上。或者只有当任何应用程序运行RDD数据时才会获得 缓存在记忆中?
我的理解是,当我根据存在的文件创建RDD时 在hdfs块上,RDD将首次从中读取数据(I / O操作) 块然后持久缓存它。至少有一次它有 从磁盘读取数据,是真的???
如果我可以将外部数据直接缓存到RDD中,有什么办法吗? 首先将数据存储在hdfs中,然后从hdfs块加载到RDD中? 这里的目的是首先将数据存储到hdfs中,然后将其加载到 在内存中会出现延迟??
答案 0 :(得分:0)
cache()
功能。 val newfile = sc.textFile("file:///home/user/sample.txt")
指定文件路径。 默认情况下,spark使用hdfs作为存储,你可以使用上面的行来改变它。
别忘了把三个///:
file:///