假设我有两个源文件,第一个命名example1.r,第二个example2.r(下面给出).
example1.r
plot(1:10,1:10)
Run Code Online (Sandbox Code Playgroud)
example2.r
qplot(1:10,1:10)
Run Code Online (Sandbox Code Playgroud)
当我获取example1.r时,绘制图形.但是,当我获取example2.r时,它不会.这里有什么解决方案?
我正在使用sbt-buildinfo插件从我的构建定义生成Scala源代码,允许我从我的Scala代码中引用项目名称,版本等.
它通过生成具有以下内容的文件BuiltInfo.scala来完成此操作:
package hello
case object BuildInfo {
val name = "helloworld"
val version = "0.1-SNAPSHOT"
val scalaVersion = "2.10.3"
val sbtVersion = "0.13.2"
}
Run Code Online (Sandbox Code Playgroud)
在
target/scala-2.10/src_managed/main/sbt-buildinfo/BuildInfo.scala.
一切都编译,我可以参考那些vals.
但是,IntelliJ Idea不会将BuildInfo.scala识别为托管源文件,因此它会停止向我显示错误.知道怎么做吗?
谢谢!
我正在玩Spark.它是来自网站的默认预构建分发版(0.7.0),具有默认配置,群集模式,一个工作者(我的本地主机).我阅读了有关安装的文档,一切似乎都很好.
我有一个CSV文件(各种大小,1000到100万行).如果我使用小输入文件(例如1000行)运行我的应用程序,一切都很好,程序在几秒钟内完成并产生预期的输出.但是当我提供更大的文件(100.000行,或100万行)时,执行失败.我试图挖掘日志,但没有多大帮助(它重复整个过程大约9-10次,然后在失败后退出.此外,还有一些与从某些空源获取失败相关的错误).
第一个JavaRDD返回的结果Iterable对我来说是可疑的.如果我返回一个硬编码的单例列表(如res.add("something");返回res;),一切都很好,即使有一百万行.但是,如果我添加我想要的所有键(28个字符串,长度为6-20个字符),则该过程仅在输入较大时才会失败.问题是,我需要所有这些密钥,这是实际的业务逻辑.
我正在使用Linux amd64,四核,8GB内存.最新的Oracle Java7 JDK.Spark配置:
SPARK_WORKER_MEMORY=4g
SPARK_MEM=3g
SPARK_CLASSPATH=$SPARK_CLASSPATH:/my/super/application.jar
Run Code Online (Sandbox Code Playgroud)
我必须提一下,当我启动该程序时,它说:
13/05/30 11:41:52 WARN spark.Utils: Your hostname, *** resolves to a loopback address: 127.0.1.1; using 192.168.1.157 instead (on interface eth1)
13/05/30 11:41:52 WARN spark.Utils: Set SPARK_LOCAL_IP if you need to bind to another address
Run Code Online (Sandbox Code Playgroud)
这是我的计划.它基于JavaWordCount示例,最低限度地修改.
public final class JavaWordCount
{
public static void main(final String[] args) throws Exception
{
final JavaSparkContext ctx = new JavaSparkContext(args[0], "JavaWordCount",
System.getenv("SPARK_HOME"), new String[] {"....jar" });
final JavaRDD<String> words = ctx.textFile(args[1], …Run Code Online (Sandbox Code Playgroud) 我正在编写一个简单的函数reduceByKey,它接受(键,数字)对的集合并按键返回减少的集合.
def reduceByKey[K](collection: Traversable[Tuple2[K, Int]]) = {
collection
.groupBy(_._1)
.map { case (group: K, traversable) => traversable.reduce{(a,b) => (a._1, a._2 + b._2)} }
}
Run Code Online (Sandbox Code Playgroud)
目前适用于:
scala> val col = List((("some","key"),100), (("some","key"),100), (("some","other","key"),50))
col: List[(Product with Serializable, Int)] = List(((some,key),100), ((some,key),100), ((some,other,key),50))
scala> reduceByKey(col)
res42: scala.collection.immutable.Map[Product with Serializable,Int] = Map((some,key) -> 200, (some,other,key) -> 50)
Run Code Online (Sandbox Code Playgroud)
但是,一旦我想使用非Int类型的数字,它就会失败,因为它期望一个Int.
scala> val col = List((("some","key"),100.toDouble), (("some","key"),100.toDouble), (("some","other","key"),50.toDouble))
col: List[(Product with Serializable, Double)] = List(((some,key),100.0), ((some,key),100.0), ((some,other,key),50.0))
scala> reduceByKey(col)
<console>:13: error: type …Run Code Online (Sandbox Code Playgroud) MATLAB 栏文档说明如下:
bar(...,'style')指定条形的样式.'style'是'分组' 或 '堆叠'.默认显示模式为"分组".
但是,我想同时实现这两个目标.让我举一个例子来详细说明:
Y = [1.0 0.5 0.7
2.0 1.5 2.0
5.0 4.0 5.0
4.0 4.0 4.5
3.0 2.0 2.0];
bar(Y,'group');
Run Code Online (Sandbox Code Playgroud)
此代码生成以下分组的 bareries图,其中5个不同的3个条组合在一起:

bar([repmat(0.5,5,1) Y(:,1)-0.5],'stack');
Run Code Online (Sandbox Code Playgroud)
并且此代码仅使用上面定义的矩阵的第一列生成以下堆叠条形图Y:

我想合并这两个,以获得一个同时分组和堆叠的条形图.因此,期望的结果将像第一张图片一样,并且一组中的三个条中的每一个将像第二张图片那样堆叠.
GetRecords.IteratorAgeMillisecondsCloudWatch 指标以查看消费者是否跟上流。GetRecords.IteratorAgeMilliseconds86400000(== 保留期)我已经确定了过时分片的shardIds 。其中之一是shardId-000000000518,我可以在 DynamoDB 表中看到包含以下检查点信息:
leaseKey: shardId-000000000518
checkpoint: 49578988488125109498392734939028905131283484648820187234
checkpointSubSequenceNumber: 0
leaseCounter: 11058
leaseOwner: 10.0.165.44:52af1b14-3ed0-4b04-90b1-94e4d178ed6e
ownerSwitchesSinceCheckpoint: 37
parentShardId: { "shardId-000000000269" }
Run Code Online (Sandbox Code Playgroud)
我可以在 10.0.165.44 上的工人日志中看到以下内容:
17/11/22 01:04:14 INFO Worker:当前流分片分配:shardId-000000000339, ..., shardId-000000000280, shardId-0000000000518
...这应该意味着shardId-000000000518被分配给这个工人。但是,我从未在此 shardId 的日志中看到任何其他内容。如果工作人员没有从这个 shardId 消费(但它应该),这可以解释为什么GetRecords.IteratorAgeMilliseconds永远不会减少。对于其他一些(非过时的 shardIds …
我希望能够从定义它的目录运行一个函数.假设这是我的文件夹结构:
./matlab
./matlab/functions1
./matlab/functions2
Run Code Online (Sandbox Code Playgroud)
我在MATLAB路径中有所有目录,所以我可以调用这些目录中的函数.
假设我的函数"func"位于'matlab/functions1'中.我的函数包含命令
csvwrite('data.csv', data(:));
Run Code Online (Sandbox Code Playgroud)
现在,如果我从./matlab调用"func",则会在./matlab中创建"data.csv".如果我从./matlab/functions2调用它,它将在该目录中创建.但我想函数总是在定义函数的目录(./matlab/functions1)中编写'data.csv',无论我当前的目录是什么.我怎样才能做到这一点?
我想知道是否可以在R编辑器中定义选项卡大小吗?我知道我可以使用其他一些文本编辑器,但我更喜欢R编辑器,因为它内置了对执行行或选择的支持。
我有一个不规则的时间序列,并使用我XTS的endpoints让我的时间序列的每小时指标.
endpoints(data, on="hours")
Run Code Online (Sandbox Code Playgroud)
我正在使用这个以每小时计算这种方式
period.apply(data, INDEX=endpoints(data, on="hours"), FUN=mean)
Run Code Online (Sandbox Code Playgroud)
然而,问题是函数endpoints返回两个连续的索引(因此在同一小时内).
> endpoints(data, on="hours")[7201:7220]
[1] 87077 87078 87089 87101 87113 87125 87137 87149 87162 87175 87187 87199 87211 87223 87235 87247 87259 87271 87283 87295
Run Code Online (Sandbox Code Playgroud)
如果我们看看他们代表的日期时间:
data[endpoints(data, on="hours")[7201:7220]]
Run Code Online (Sandbox Code Playgroud)
我们注意到这些是
> data[endpoints(data, on="hours")[7201:7220]]
jstimestamp X61757 X61754 X61760 X61753 X61758 X61762 X61756 X61759 X61761 X61755 X61752
2007-10-28 01:55:00 1.193529e+12 938.7 1339.6 450.8 799.4 850.0 1653.6 622.3 159.6 4415.4 681.6 1421.0
2007-10-28 02:00:00 1.193530e+12 946.0 1326.3 437.8 799.9 829.3 …Run Code Online (Sandbox Code Playgroud) r ×3
scala ×3
apache-spark ×2
matlab ×2
amazon-kcl ×1
bar-chart ×1
ggplot2 ×1
graph ×1
java ×1
multimethod ×1
r-faq ×1
sbt ×1
typeclass ×1
xts ×1