我正在尝试在迭代RDD的元素时向地图添加元素.我没有收到任何错误,但修改没有发生.
这一切都可以直接添加或迭代其他集合:
scala> val myMap = new collection.mutable.HashMap[String,String]
myMap: scala.collection.mutable.HashMap[String,String] = Map()
scala> myMap("test1")="test1"
scala> myMap
res44: scala.collection.mutable.HashMap[String,String] = Map(test1 -> test1)
scala> List("test2", "test3").foreach(w => myMap(w) = w)
scala> myMap
res46: scala.collection.mutable.HashMap[String,String] = Map(test2 -> test2, test1 -> test1, test3 -> test3)
Run Code Online (Sandbox Code Playgroud)
但是当我尝试从RDD做同样的事情时:
scala> val fromFile = sc.textFile("tests.txt")
...
scala> fromFile.take(3)
...
res48: Array[String] = Array(test4, test5, test6)
scala> fromFile.foreach(w => myMap(w) = w)
scala> myMap
res50: scala.collection.mutable.HashMap[String,String] = Map(test2 -> test2, test1 -> test1, test3 -> test3)
Run Code Online (Sandbox Code Playgroud)
我已经尝试在foreach之前打印地图的内容,以确保变量是相同的,并且它打印正确: …
我在一个小于400MB的非常小的数据集上运行一个相当小的Spark程序,其中包含一些map和reduceByKey操作.
在某些时候,我有一个我要排序的元组的RDD,我调用sortByKey.这是我程序中最慢的部分.其他一切似乎几乎立即运行,但这需要20秒.
问题是,我的笔记本电脑以及AWS m3.large机器群集需要20秒.我尝试过1,2和3个奴隶,执行时间的差异非常小.Ganglia和spark web控制台表明CPU和内存正在被用于所有从站的最大容量,所以我认为配置是可以的.
我还在我预期之前发现了执行问题,但后来我读到了这个线程,它指向Spark中的一个未解决的问题.我不认为这完全相关.
它是sortByKey固有的慢,无论我添加多少节点,它将决定我的程序的最短执行时间?希望不是,而且我只是做错了什么并且可以修复.
编辑
事实证明,我所看到的与我发布的链接有关.sortByKey恰好是第一个动作(记录为转换),看起来好像程序在排序时很慢,但实际排序速度非常快.问题出在先前的连接操作中.
我说的所有内容都适用于通过连接更改排序.当我添加更多节点(或numTask到连接函数)时,为什么执行时间不会下降,为什么它甚至不比普通的SQL连接更好?我之前发现其他人有这个问题,但除了建议调整序列化之外没有答案,我真的不认为是我的情况.
我一直在阅读有关Storm的内容,并在玩风暴启动器的例子.
我认为我得到了这个概念,它很适用于很多情况.我有一个测试项目,我想要了解更多关于这一点,但我想知道Storm是否真的适合这个.
我遇到的概念问题是"流媒体"定义.似乎Storms将作为订阅流并实时处理它的魅力,但我实际上没有流,而是我想要处理的有限数据集.
我知道有这方面的事情,但我对Storm的实时能力以及编写Storm的Nathan在其会谈中提到的其他有趣的观点感兴趣.
所以我想知道,人们会编写调查非流式API的Spouts,然后将结果差异化以模拟流吗?
第二个重点是,似乎Storm拓扑在中断之前从未完成处理,这再次不适用于我的情况.我希望我的拓扑结构知道,一旦我的有限源数据列表完成,处理就可以终止,并且可以发出最终结果.
那么,这一切在Storm术语中是否有意义,还是我看错了?如果是这样,您对这种实时并行计算需求提出了哪些替代方案?
谢谢!
如果我要编程一个微控制器(ATMega128)与扬声器播放一个真实的话,我该怎么做?
我是否需要使用数字/模拟转换器发送不同的幅度值,或者频率变化是否足够?在任何情况下,我如何编码扬声器需要接收的频率和幅度值?我需要某种频率复用吗?我不是说用扬声器制作简单的声音,就像一个音符然后另一个音符.我想播放一首真正的歌曲,包括所有乐器,人声等.
我打算使用Play部署应用程序,之前从未使用过"作业".我的部署将足够大,需要不同的Play服务器负载平衡,但我的计算量不会太大,不需要hadoop/storm/others.
我的问题是,如何在Play中处理这种情况?如果我在Play中设置一个每分钟运行的作业,我不希望每个服务器同时执行完全相同的操作.
我只能找到这个答案,但我不喜欢任何这些选择.
那么,是否有任何工具或最佳实践来协调工作或我是否必须从头开始做某事?
我知道至少有两个本地选项来部署Play应用程序,这是复制整个事情并运行播放开始,或者导出战争以将其作为另一个应用程序服务器的一部分运行.
我还使用了gae和heroku的部署机制.井井有条.
但是,我想要做的是:
有没有我在游戏中错过的命令或选项?如果有意义的话,可能会导出战争并从不同的游戏服务器运行它?或者我是否会在预编译之后找出所需内容而不是仅仅复制它?
编辑:
接受的答案是我正在寻找的,但在1.2.x上不可用.最终我创建了自己的脚本,其中最重要的部分是:
我刚刚在我的电脑上安装了PHP(Ubuntu).如果我test.php用简单的代码创建一个文件,然后运行" php test.php",它运行正常(我得到我期望的).
但是,当我test.php用浏览器(Mozilla)打开此文件()时,它会询问我如何打开此文件.不是问题.我点击"打开"然后我选择" /usr/bin/php"并且......没有任何反应.浏览器不显示任何内容.
任何人都可以帮助我吗?为什么我的浏览器无法使用本地php服务器显示本地php文件?
apache-spark ×2
apache-storm ×1
arduino ×1
atmega ×1
c ×1
electronics ×1
php ×1
rdd ×1
scala ×1