在Spark节点之间共享一个日期

时间:2015-05-26 19:45:52

标签: apache-spark

我想运行一个spark作业,输出到包含作业开始日期的某个目录。有没有办法在所有火花节点中共享一个日期对象(例如joda.time),所以无论哪个节点输出什么管道,它们都输出到相同的dir结构?

2 个答案:

答案 0 :(得分:1)

只需在驱动程序中创建对象(作为val)并在需要的地方关闭它。应将其复制到工作节点以供您根据需要使用。

答案 1 :(得分:1)

如果问题是

  

有没有办法共享一个日期对象(例如joda.time)   在所有火花节点

然后答案就是"广播对象"

如果真正的问题是如何指定输出路径,那么,实际上你不需要广播路径。你可以说rdd.saveAsFile(/ path),该函数会自动将每个分区转储到一个文件中(如part000左右)。当然,所有工作节点都必须能够访问" path"变量,所以在真正的集群中它必须是HDFS或S3或NFS或者喜欢。

来自文档:

  

saveAsTextFile(path)

     

将数据集的元素写为文本文件(或文本集)   文件)在本地文件系统,HDFS或任何其他目录中的给定目录中   Hadoop支持的文件系统。 Spark会在每个元素上调用toString   将其转换为文件中的一行文字。