小编Shi*_*nsh的帖子

差异:RStudio中的"编译PDF"按钮与knit()和knit2pdf()

TL; DR

在RStudio 中使用knit()/ knit2pdf()代替"编译PDF" 1按钮有什么(可能不需要的)副作用?

动机

大多数用户knitr似乎都在RStudio中编写文档,并使用"编译PDF"/"编织HTML"按钮编译文档.这大部分时间都可以顺利运行,但每隔一段时间就有一些使用编译按钮无法实现的特殊要求.在这些情况下,解决方案通常是直接调用knit()/ knit2pdf()/ rmarkdown::render()(或类似函数).

一些例子:

使用knit2pdf()而不是"编译PDF"按钮通常提供这种问题的简单解决方案.然而,这是有代价的:"编译PDF" 在一个单独的过程和环境中处理文档有根本区别,而knit2pdf()朋友则不然.

这具有影响,问题在于并非所有这些影响都是显而易见的.以knit()使用全局环境中的对象的事实为例(而"编译PDF"没有)作为示例.在上述第二个例子的情况下,这可能是显而易见的,并且是期望的行为,但是当用于克服例如示例1和3中的问题时,这是意想不到的结果knit().

此外,还有更微妙的差异:

问题及其目标

每当我读/写使用的建议knit2pdf()而不是"编译PDF"时,我认为"正确,但用户应该理解后果......".

因此,这里的问题是:

在RStudio 中使用knit()/ knit2pdf()代替"编译PDF"按钮有什么(可能不需要的)副作用?

如果对这个问题有一个全面的(社区维基?)答案,可以将其与未来的建议联系起来knit2pdf().

相关问题

这个问题有很多相关的问题.然而,他们要么只提出代码(或多或少)重现RStudio按钮的行为,要么他们解释"基本上"发生了什么,而没有提到可能的陷阱.其他人看起来像是非常相似的问题,但结果却是一个(非常)特殊情况.一些例子:

r rstudio knitr

55
推荐指数
1
解决办法
2822
查看次数

在scala中定义带有两个含义的变量

我在scalaLang的Twitter上发现了一篇有趣的帖子.此代码编译和工作的位置

class A(implicit implicit val b: Int) 

val objA = new A()(42)
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下它是如何工作的?我阅读了implicits的文档,但没有找到这样的案例.请解释一下这里发生了什么.

任何帮助表示赞赏!

scala scala-implicits

6
推荐指数
1
解决办法
94
查看次数

在群集模式下使用spark-submit共享配置文件

在开发期间,我一直在"客户端"模式下运行我的火花作业.我使用"--file"与执行程序共享配置文件.Driver正在本地读取配置文件.现在我想以"集群"模式部署作业.我现在很难与驱动程序共享配置文件.

例如,我将配置文件名称作为extraJavaOptions传递给驱动程序和执行程序.我正在使用SparkFiles.get()读取文件

  val configFile = org.apache.spark.SparkFiles.get(System.getProperty("config.file.name"))
Run Code Online (Sandbox Code Playgroud)

这在执行程序上运行良好但在驱动程序上失败.我认为文件只与执行程序共享,而不是与运行驱动程序的容器共享.一种选择是将配置文件保存在S3中.我想检查是否可以使用spark-submit实现这一点.

> spark-submit --deploy-mode cluster --master yarn --driver-cores 2
> --driver-memory 4g --num-executors 4 --executor-cores 4 --executor-memory 10g \
> --files /home/hadoop/Streaming.conf,/home/hadoop/log4j.properties \
> --conf **spark.driver.extraJavaOptions**="-Dlog4j.configuration=log4j.properties
> -Dconfig.file.name=Streaming.conf" \
> --conf **spark.executor.extraJavaOptions**="-Dlog4j.configuration=log4j.properties
> -Dconfig.file.name=Streaming.conf" \
> --class ....
Run Code Online (Sandbox Code Playgroud)

hadoop-yarn apache-spark spark-streaming

6
推荐指数
2
解决办法
4423
查看次数

如何从Spark Streaming开始从Kafka主题中读取记录?

我正在尝试使用Spark Streaming从Kafka主题中读取记录.

这是我的代码:

object KafkaConsumer {

  import ApplicationContext._

  def main(args: Array[String]) = {

    val kafkaParams = Map[String, Object](
      "bootstrap.servers" -> "localhost:9092",
      "key.deserializer" -> classOf[StringDeserializer],
      "value.deserializer" -> classOf[StringDeserializer],
      "group.id" -> s"${UUID.randomUUID().toString}",
      "auto.offset.reset" -> "earliest",
      "enable.auto.commit" -> (false: java.lang.Boolean)
    )

    val topics = Array("pressure")
    val stream = KafkaUtils.createDirectStream[String, String](
      streamingContext,
      PreferConsistent,
      Subscribe[String, String](topics, kafkaParams)
    )
    stream.print()
    stream.map(record => (record.key, record.value)).count().print()
    streamingContext.start()
  }
}
Run Code Online (Sandbox Code Playgroud)

我运行时没有显示任何内容.

要检查pressure主题中是否确实存在数据,我使用命令行方法,它会显示记录:

bin/kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 \
  --topic pressure \
  --from-beginning
Run Code Online (Sandbox Code Playgroud)

输出:

TimeStamp:07/13/16 15:20:45:226769,{'Pressure':'834'}
TimeStamp:07/13/16 15:20:45:266287,{'Pressure':'855'}
TimeStamp:07/13/16 …
Run Code Online (Sandbox Code Playgroud)

scala apache-kafka apache-spark spark-streaming

6
推荐指数
1
解决办法
6364
查看次数

有没有办法在 Grafana 仪表板中获取用户输入?

我目前正在研究时间序列数据并使用 Grafana 以图表的形式显示它。我有一个用例,当值从特定级别下降时,应该向用户询问一个问题,并且其响应应该保存在数据源中,就像 Its Influxdb 的情况一样。

举个例子,如果温度值下降到 10 F,那么应该向用户提出一些问题,问这正常吗?其回答“是”或“否”应添加回 influx。

有没有办法使用 Grafana 来实现这一目标?

user-interface user-input grafana

5
推荐指数
0
解决办法
1349
查看次数

为什么Split在不同的字符串上表现不同?

以下是两种情况:

情况1:

scala> "".split('f')
res3: Array[String] = Array("")
Run Code Online (Sandbox Code Playgroud)

案例2:

scala> "f".split('f')
res5: Array[String] = Array()
Run Code Online (Sandbox Code Playgroud)

为什么它在这里表现不同!具体的解释会很棒!

string split scala

4
推荐指数
1
解决办法
80
查看次数

Spark java.lang.ClassCastException:scala.collection.mutable.WrappedArray $ ofRef无法强制转换为java.util.ArrayList

星火扔ClassCastExpection在WrappedArray进行任何操作时

示例:我有一个如下所示的地图输出

输出:

Map(1 -> WrappedArray(Pan4), 2 -> WrappedArray(Pan15), 3 -> WrappedArray(Pan16, Pan17, Pan18), 4 -> WrappedArray(Pan19, Pan1, Pan2, Pan3, Pan4, Pan5, Pan6))]
Run Code Online (Sandbox Code Playgroud)

当调用map.values时,其打印输出如下输出

MapLike(WrappedArray(Pan4), WrappedArray(Pan15), WrappedArray(Pan16, Pan17, Pan18), WrappedArray(Pan19, Pan1, Pan2, Pan3, Pan4, Pan5, Pan6))
Run Code Online (Sandbox Code Playgroud)

如果调用map.values.map(arr => arr)或抛出异常map.values.forEach { value => println(value)}

我无法对包装的数组执行任何操作.我只需要每个wrappedArray中存在的元素的大小

Error StackTrace
------------------
java.lang.ClassCastException: scala.collection.mutable.WrappedArray$ofRef cannot be cast to java.util.ArrayList
    at WindowTest$CustomMedian$$anonfun$1.apply(WindowTest.scala:176)
    at WindowTest$CustomMedian$$anonfun$1.apply(WindowTest.scala:176)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.immutable.Map$Map4.foreach(Map.scala:181)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
    at scala.collection.AbstractTraversable.map(Traversable.scala:105)
    at WindowTest$CustomMedian.evaluate(WindowTest.scala:176)
    at org.apache.spark.sql.execution.aggregate.ScalaUDAF.eval(udaf.scala:446)
    at org.apache.spark.sql.execution.aggregate.AggregationIterator$$anonfun$35.apply(AggregationIterator.scala:376)
    at …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-sql spark-dataframe

3
推荐指数
1
解决办法
1万
查看次数

Spark Exits有例外

这是我在运行应用程序时获得的stackTrace:

16/11/03 11:25:45 INFO CoarseGrainedSchedulerBackend$DriverEndpoint: Launching task 233 on executor id: 4 hostname: 10.178.149.243.
16/11/03 11:25:45 WARN TaskSetManager: Lost task 1.0 in stage 11.0 (TID 217, 10.178.149.243): java.util.NoSuchElementException: None.get
    at scala.None$.get(Option.scala:347)
    at scala.None$.get(Option.scala:345)
    at org.apache.spark.storage.BlockInfoManager.releaseAllLocksForTask(BlockInfoManager.scala:343)
    at org.apache.spark.storage.BlockManager.releaseAllLocksForTask(BlockManager.scala:644)
    at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:281)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)

16/11/03 11:25:45 INFO TaskSetManager: Lost task 14.0 in stage 11.0 (TID 225) on executor 10.178.149.243: java.util.NoSuchElementException (None.get) [duplicate 1]
16/11/03 11:25:45 INFO TaskSetManager: Starting task 14.1 in stage 11.0 (TID 234, 10.178.149.243, partition 14, NODE_LOCAL, …
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-sql

2
推荐指数
1
解决办法
3386
查看次数

我们如何在couchbase中以事务方式更新文档?

我有一个用例,其中有三个文档,我想以事务方式更新它们,即如果其中任何一个失败,那么其他文档也不应该在数据库中更新.我正在寻找一个选项但在JavaSDK中找不到.那么我有什么方法可以在事务上执行此操作.我使用CAS值来处理并发.请给我一个同时处理此操作的方法.

Couchbase版本:4.0 Java SDK:2.1.6

任何帮助表示赞赏.

transactional distributed-transactions couchbase couchbase-java-api

1
推荐指数
1
解决办法
1449
查看次数

Scala reduce和fold返回0而不是值

嘿,我有一个案例,我试图在REPL上运行它:

(1 to 100).toList.reduce(_*_)
Run Code Online (Sandbox Code Playgroud)

它归还给我0.我不明白这种行为.如果Int溢出,它应该返回任何负数或正数.我好奇,因此我尝试了这个:

(1 to 100).toList.fold(1)(_*_)
Run Code Online (Sandbox Code Playgroud)

它仍然归还我0然后我尝试了这个:

(1 to 100).toList.fold(1)((a,b) => { println(s"dd::::$a:::$b"); a*b })
Run Code Online (Sandbox Code Playgroud)

它回报我:

scala> res0.toList.fold(1)((a,b) => { println(s"dd::::$a:::$b"); a*b })
dd::::1:::1
dd::::1:::2
dd::::2:::3
dd::::6:::4
dd::::24:::5
dd::::120:::6
dd::::720:::7
dd::::5040:::8
dd::::40320:::9
dd::::362880:::10
dd::::3628800:::11
dd::::39916800:::12
dd::::479001600:::13
dd::::1932053504:::14
dd::::1278945280:::15
dd::::2004310016:::16
dd::::2004189184:::17
dd::::-288522240:::18
dd::::-898433024:::19
dd::::109641728:::20
dd::::-2102132736:::21
dd::::-1195114496:::22
dd::::-522715136:::23
dd::::862453760:::24
dd::::-775946240:::25
dd::::2076180480:::26
dd::::-1853882368:::27
dd::::1484783616:::28
dd::::-1375731712:::29
dd::::-1241513984:::30
dd::::1409286144:::31
dd::::738197504:::32
dd::::-2147483648:::33
dd::::-2147483648:::34
dd::::0:::35
dd::::0:::36
dd::::0:::37
dd::::0:::38
dd::::0:::39
dd::::0:::40
dd::::0:::41
dd::::0:::42
dd::::0:::43
dd::::0:::44
dd::::0:::45
dd::::0:::46
dd::::0:::47
dd::::0:::48
dd::::0:::49
dd::::0:::50
dd::::0:::51
dd::::0:::52
dd::::0:::53
dd::::0:::54
dd::::0:::55 …
Run Code Online (Sandbox Code Playgroud)

java reduce scala fold scala-collections

1
推荐指数
1
解决办法
132
查看次数