在RDD持久性方面,spark cache()和persist()spark 之间有什么区别?
当从文本文件或集合(或从另一个RDD)创建弹性分布式数据集(RDD)时,我们是否需要显式调用"cache"或"persist"来将RDD数据存储到内存中?或者默认情况下RDD数据是以分布式方式存储在内存中的吗?
val textFile = sc.textFile("/user/emp.txt")
Run Code Online (Sandbox Code Playgroud)
根据我的理解,在上面的步骤之后,textFile是一个RDD,并且可以在节点的所有/部分内存中使用.
如果是这样,为什么我们需要在textFile RDD上调用"cache"或"persist"呢?
我将通过Spark Programming指南说:
广播变量允许程序员在每台机器上保留一个只读变量,而不是随副本一起发送它的副本.
考虑到上述情况,广播变量的用例是什么?广播变量解决了什么问题?
当我们创建如下所示的任何广播变量时,变量引用,这里它broadcastVar可以在集群中的所有节点中使用吗?
val broadcastVar = sc.broadcast(Array(1, 2, 3))
Run Code Online (Sandbox Code Playgroud)
这些变量在节点的内存中可用多长时间?
下面是我创建的hive表:
CREATE EXTERNAL TABLE Activity (
column1 type, </br>
column2 type
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LOCATION '/exttable/';
Run Code Online (Sandbox Code Playgroud)
在我的HDFS位置/ exttable中,我有很多CSV文件,每个CSV文件也包含标题行.当我在进行选择查询时,结果也包含标题行.
在HIVE中我们可以忽略标题行或第一行吗?
对于群集,Mahout输入需要采用矢量形式.有两种类型的矢量实现.一个是稀疏矢量,另一个是密集矢量.
两者有什么区别?
稀疏和密集的使用场景?