我有一些25k文件(原始json中为4 GB)的数据,我想执行一些javascript操作,使我的终端数据使用者(R)更容易访问,我想对这些更改进行"版本控制"通过为每个更改添加一个新集合,但我无法弄清楚如何map/reduce没有reduce.我想要一对一的文档映射 - 我开始使用25,356个文档collection_1,我希望最终得到25,356个文档collection_2.
我可以用这个来破解它:
var reducer = function(key, value_array) {
return {key: value_array[0]}
}
Run Code Online (Sandbox Code Playgroud)
然后把它称为:
db.flat_1.mapReduce(mapper, reducer, {keeptemp: true, out: 'flat_2'})
Run Code Online (Sandbox Code Playgroud)
(我的映射器只调用一次发射,一个字符串作为第一个参数,最后一个文件作为第二个参数.它是我真正想要的那些第二个参数的集合.)
但这似乎很尴尬,我不知道它为什么会起作用,因为emit我的mapper中的调用参数不等于我的返回参数reducer.另外,我最终得到了一份文件
{
"_id": "0xWH4T3V3R",
"value": {
"key": {
"finally": ["here"],
"thisIsWhatIWanted": ["Yes!"]
}
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎没必要.
此外,执行自己的插入的游标甚至不到十分之一mapReduce.我不太了解MongoDB对它进行基准测试,但我猜它会50x慢一些.有没有办法并行运行游标?我不在乎我的文件是否与其中的文件collection_2顺序不同collection_1.
通常tmux只显示与终端当前显示的行数相同的输出.然后当我分离它时,它会清除所有内容.我知道如何看待回溯(ctrl+A,[,k,...),但我怎么可以配置TMUX只打印了所有输出终端,因为如果我不使用它呢?
我喜欢tmux因为我很难记住nohup某些任务,并且因为它使查看长时间运行作业的输出变得更容易.不过,我想能够更自然地查看其回溯,通过简单地滚动回在iTerm2.
或者,如果有办法做到这一点screen,我也可以使用它.
有人可以提供一些例子
实际上习惯了?我假设它们是reduce/fold方法的快捷方式,但是没有关于它们如何在Scala文档中实际使用的示例,并且它们无法在StackOverflow上进行谷歌/搜索.
我正在编写一个iPhone应用程序(Swift 4.0,iOS 10.3.3,Xcode 9.2),UIViewController其中包含一个主UIDatePicker模式,其默认模式为默认模式UIDatePickerMode.dateAndTime.用户旨在使应用程序在后台运行(尽管这不是必需的),并且有时打开它,选择特定的日期和时间,然后单击按钮.
我的问题是,当应用程序在最初启动后的一天(或几天)重新打开时,微调器的日期部分上的时间敏感标签,即"今天"和"昨天",不会得到更新.留在后台.
这意味着,在使用一天左右后,UI可能会处于混乱或不一致状态.例如,这是1月19日的截图:
它设法将"昨天"线重新描绘为"1月17日星期三",但没有将"今天"改为"昨天"或"1月19日星期五"为"今天".
另一个,从今天中午1月22日中午左右开始(选定的值是1月21日上午9点29分):
"昨天"是正确的,但"今天"不见了.
有时陈旧的标签就会堆积起来,就像1月14日这个镜头一样(选定值是1月15日10:47 PM):
如果我强制退出并重新启动应用程序,一切看起来都是新鲜和正确的,但我想避免这样做.
我试着打电话setNeedsDisplay()的UIDatePicker时候实例viewWillAppear被调用,以及一旦NotificationCenter触发.UIApplicationWillEnterForeground事件,但没有成功:(.
大多数控件没有内部状态,这取决于当前时间,所以我想这不会经常出现.但在这种情况下,我的选择是什么?
如何触发UIDatePicker控件的完全刷新?
SO上似乎有三个类似的问题:
setDate(...)对UIDatePicker当前日期值(在那些我称之为情况下setNeedsDisplay()).这似乎相当迟钝,考虑到我没有改变日期(而且我不确定如何再测试5个小时).setDate(不起作用;见3.),picker.becomeFirstResponder()+ picker.reloadInputViews()(不起作用;见6.)编辑:现在是1月23日,午夜过后5分钟.我试过了什么:
setNeedsDisplay()每当视图出现/应用程序进入前景时调用UIDatePicker(我将在"刷新时"调用它).上面的观察/截图都是在这种情况下拍摄的.在我添加之前我遇到了同样的问题setNeedsDisplay(),我没有注意到行为的任何变化,但在添加之前我并没有那么分析.陈旧标签是有和没有的问题setNeedsDisplay()..date = ...直接在"刷新时" 设置字段(使用与viewDidLoad最初调用时相同的存储日期).这没有直接影响(目前的日期是1月23日):
但更新了底层(?!)(这里我主动中间滚动):
我实际上在同一个视图上有两个UIDatePickers,所以我也可以通过测试设置日期.setDate(..., animated: true),效果好一点 - "1月22日"成为"昨天",但没有"今天"日期("Jan" 23"遗骸"1月23日"):
爆炸新闻!大约30分钟后(上午12:35),在重新开启应用程序并重新打开应用程序后,标签再次发生变化.在.date …
我正在使用ScriptingBridge检索当前在iTunes,Mac OS X中播放的曲目.
from ScriptingBridge import SBApplication
iTunes = SBApplication.applicationWithBundleIdentifier_("com.apple.iTunes")
print iTunes.currentTrack().name()
Run Code Online (Sandbox Code Playgroud)
但是,当我运行最后一行,实际获取轨道名称时,一个应用程序出现在Dock中,并且在我关闭我的Python程序之前不会离开,无论我是在REPL中运行还是作为脚本运行.图标就是这个,至少在我的机器上:
/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/Resources/PythonInterpreter.icns
Run Code Online (Sandbox Code Playgroud)
该脚本运行良好,我可以通过SB从iTunes获取所需的所有信息.我只想保持图标弹出.为什么该特定方法调用会调用停靠图标?
这是我的问题:我想要一个helpme带有地图:r并:g用空向量替换的函数,当且仅当这些键存在时.例如:
输入:
(helpme {:a "1" :r ["1" "2" "3"] :g ["4" "5"]})
Run Code Online (Sandbox Code Playgroud)
输出:
{:a "1" :r [] :g []}
Run Code Online (Sandbox Code Playgroud)
输入:
(helpme {:a "1" :r ["1" "2" "3"]})
Run Code Online (Sandbox Code Playgroud)
输出:
{:a "1" :r []}
Run Code Online (Sandbox Code Playgroud)
我可以定义一个功能"helpme"来做到这一点,但它过于复杂,我觉得必须有一个更容易(更惯用)的方式......
这是我完成的过于复杂的方式,如下所述:
(defn c [new-doc k] (if (contains? new-doc k) (assoc new-doc k []) new-doc))
(defn helpme [new-doc] (c (c new-doc :r) :g))
Run Code Online (Sandbox Code Playgroud) 我如何编写一个defprotocol(并defrecord实现它)来声明一个与现有函数同名的方法,并动态分派到协议/记录的方法,如果我用协议/记录的实例调用它,否则分派到现有的功能?
例如,我想创建一个支持基本算术的几何助手(在这个例子中只是乘法,以保持简短):
(defprotocol SizeOps
(* [this factor] "Multiply each dimension by factor and return a new Size"))
Run Code Online (Sandbox Code Playgroud)
在这一点上,我已经从编译器那里得到了一些不祥的预感:
警告:协议#'user/SizeOps 正在覆盖函数 *
警告:* 已经引用:#'clojure.core/* 在命名空间中:user,被替换为:#'user/*
然后实现:
(defrecord Size [width height]
SizeOps
(* [this factor] (Size. (* width factor) (* height factor))))
Run Code Online (Sandbox Code Playgroud)
编译没问题,但是当我尝试使用它时,它唯一*知道的是我的协议中的那个:
(* (Size. 1 2) 10)
Run Code Online (Sandbox Code Playgroud)
IllegalArgumentException 没有方法的实现::* of protocol: #'user/SizeOps found for class: java.lang.Long
我可以通过*在我的实现中完全指定核心函数来解决这个问题:
(defrecord Size [width height]
SizeOps
(* [this factor] (Size. (clojure.core/* width factor) (clojure.core/* height …Run Code Online (Sandbox Code Playgroud)