lazy-evaluation相关内容
我注意到 Scala 提供了 lazy vals.但我不明白他们在做什么. scala>值 x = 15x: 整数 = 15标度>懒惰的 val y = 13y: Int = 标度>Xres0:整数 = 15标度>是res1:整数 = 13 REPL 表明 y 是一个lazy val,但是它和普通的 val 有什么不同? 解决方案 它们的区别在于,val 在定义时执行,而
..
Scala 的一个方便的特性是 lazy val,其中对 val 的评估被延迟到有必要时(第一次访问). 当然,lazy val 必须有一些开销——Scala 必须在某处跟踪该值是否已经被评估并且评估必须同步,因为多个线程可能会尝试访问该值第一次同时. lazy val 的成本究竟是多少 - 是否有一个与 lazy val 相关联的隐藏布尔标志来跟踪它是否已被评估,是什么完全同步,是否
..
我正在尝试一次一行读取一个大文件.我发现 Quora 上的一个问题 处理了这个主题,但我缺少一些联系来使整个事情整合在一起. var Lazy=require("lazy");新的懒惰(process.stdin).lines.forEach(功能(行){console.log(line.toString());});process.stdin.resume(); 我想弄清楚的是如何一次从文
..
我想使用 dplyr 参数化以下计算,以找出 Sepal.Length 的哪些值与多个 Sepal.Width: 库(dplyr)虹膜%>%group_by(Sepal.Length) %>%总结(n.uniq=n_distinct(Sepal.Width))%>%过滤器(n.uniq > 1) 通常我会这样写: not.uniq.per.group %总结(n.uniq=n_distinc
..
有没有更简洁的方法可以从具有数据库后端的 tbl 中获取 dplyr tbl 的一列作为向量(即数据框/表不能直接作为子集)? require(dplyr)db
..
当我在研究 Javascript 代码中的词法闭包问题时,我在 Python 中遇到了这个问题: flist = []对于 xrange(3) 中的 i:def func(x): 返回 x * iflist.append(func)对于 flist 中的 f:打印 f(2) 请注意,此示例谨慎地避免了 lambda.它打印“4 4 4",这令人惊讶.我期待“0 2 4". 这个等效的 P
..
我阅读了关于重命名对象和@Shane 的这个基本问题's answer to it,指向我懒惰的评估.现在我想知道 assign 是否也被懒惰地评估了.就像这里: assign("someNewName",someOldObject)rm(一些旧对象) 我对此感到疑惑的原因是以下用例:假设我有 10K+ R 个对象,每个对象都有两个属性,称为 originalName 和 additional
..
我喜欢使用 numpy 中的 np.fromiter 因为它是构建 np.array 对象的一种资源懒惰的方式.但是,它似乎不支持多维数组,这也很有用. 将 numpy 导入为 np定义乐趣(i):""" 返回 4 个相同类型值的函数."""返回元组(4*i + j for j in range(4))# 尝试从中创建一个二维数组:a = np.fromiter((fun(i) for i in
..
在库的公共接口设计中,返回一个Lazy 在属性中,如果我想要延迟初始化?还是总是通过封装或其他技术隐藏Lazy的使用是否更好? 解决方案 对于以下内容,我假设您指的是惰性属性. 这取决于界面的用途. 消费者知道它是懒惰的重要细节吗?或者它只是一个技术细节,不应该改变消费者的行为. 如果你只有一个短暂的延迟,不能由消费者处理,那么我会倾向于隐藏懒惰,只直接暴露 T.
..
假设我想编写一个函数 foo 来转换 DataFrame: object Foo {def foo(来源:DataFrame):DataFrame = {...具有停止条件的复杂迭代算法...}} 由于foo的实现有很多“Action"(collect、reduce等),调用foo会立即触发代价高昂的执行. 这不是一个大问题,但是由于 foo 只将一个 DataFrame 转换为另一个,
..
在来自 Spark 编程指南的这段代码中, #加载一个parquet文件的结果也是一个DataFrame.parquetFile = sqlContext.read.parquet("people.parquet")# Parquet 文件也可以注册为表,然后在 SQL 语句中使用.parquetFile.registerTempTable("parquetFile");青少年 = sqlCon
..
我正在尝试使用我在线阅读的计数方法强制对 PySpark 进行急切评估: spark_df = spark.read.jdbc(url=jdbcUrl, table=pushdown_query, properties=connectionProperties)spark_df.cache().count() 但是,当我尝试运行代码时,缓存计数部分需要永远运行.我的数据大小相对较小(2.7GB
..
根据 Spark RDD 文档: Spark 中的所有转换都是惰性的,因为它们不会立即计算结果...这种设计使 Spark 能够更有效地运行. 有时我需要对我的数据帧进行某些操作现在和现在.但是因为数据帧操作是“懒惰评估"(如上所述),当我在代码中编写这些操作时,几乎不能保证 Spark 会实际内联执行这些操作其余的代码.例如: val someDataFrame : DataFra
..
Spark Transformations 是惰性求值的 - 当我们调用 action 时,它会执行基于谱系图的所有转换. 延迟评估转换有什么好处? 与急切评估相比,它是否会提高性能和更少的内存消耗? 延迟评估 Transformation 有什么缺点吗? 解决方案 对于转换,Spark 将它们添加到计算的 DAG 中,并且只有当驱动程序请求某些数据时,这个 DAG 才会
..
我有一个对任意大小的二维数组进行操作的函数句柄: R2T = @(DL1,DL2) arrayfun(@(DL1,DL2)...1/(fzero(@(x)fFitObj1(x))./fFitObj2(x)-...DL1./DL2,[minLim maxLim])) ...,DL1,DL2) - C1; 以下是其作用的自下而上细分: fzero(@(x)fFitObj1(x)./fFitO
..
我有以下课程: @RepositoryA类{公共无效方法1(){...}}@成分B 类实现 C {@自动连线@懒惰的私人 A;公共无效方法2(){a.method1();}}@成分D类{@自动连线私人列表C;@PostConstruct公共无效方法3(){//迭代列表 c 并调用 method2()}} 假设 Spring 初始化 bean 如下: 1. 创建第一个 bean B.在创
..
我有以下课程: @RepositoryA类{公共无效方法1(){...}}@成分B 类实现 C {@自动连线@懒惰的私人 A;公共无效方法2(){a.method1();}}@成分D类{@自动连线私人列表C;@PostConstruct公共无效方法3(){//迭代列表 c 并调用 method2()}} 假设 Spring 初始化 bean 如下: 1. 创建第一个 bean B.在创
..
AngularJS 从 1.3.0-beta.10 版本开始有一个新特性:“惰性一次性绑定"". 简单的表达式可以以 :: 为前缀,告诉 angular 在表达式第一次计算后停止观察.给出的常见示例类似于: {{::user.name}} 是否有类似以下表达式的语法?
..
我有一大堆要以随机顺序迭代的元素.但是,我无法修改列表,也不想创建它的副本,因为 1) 它很大 2) 可以预期迭代会提前取消. List数据 = ...;迭代器洗牌 = 洗牌(数据);而 (shuffled.hasNext()) {T t = shuffled.next();if (System.console().readLine("你想要 %s 吗?", t).startsWith("y")
..
谷歌已经取代
..