我正在学习data.table.我很难转换dplyr连接语法.您能为以下测试用例推荐data.table等价吗?
library(data.table)
library(dplyr)
dtProduct <- data.table(
ProductID = c(6, 33, 17, 88, 44, 51),
ProductName= c("Shirt", "Helmet", "Gloves", "Towel", "Chair", "Detergent"),
Price= c(25, 60, 10, 7.5, 135, 16),
key = 'ProductID'
)
set.seed(20141216)
dtOrder <- data.table(
OrderID = sample(1001:9999, 12),
CustomerID = sample(271:279, 12, replace=TRUE),
# NOTE: some non-existent ProductID intentionally introduced
ProductID = sample(c(dtProduct[, ProductID], 155, 439), 12, replace=TRUE),
Qty = sample(1:3, 12, replace=TRUE),
key = 'OrderID'
)
> tables()
NAME NROW NCOL MB COLS KEY
[1,] dtOrder 12 …Run Code Online (Sandbox Code Playgroud) 我很抱歉提前发帖混淆了几个问题.如果不合适,请编辑或建议我应该做什么.我正在练习data.table join,这是一个想象的场景:
"两个机器人,每个机器人在MovementA有4个位置,在MovementB有4个位置.要解决的问题:对于每个机器人,从MoveA到MoveB,有4x4个可能的位置对找到最短距离的4对"
数据设置
library(data.table)
set.seed(20141220)
dtMoveA = data.table(RobotID = rep(1:2, each=4), Position=sample(1:20, 8))
dtMoveB = data.table(RobotID = rep(1:2, each=4), Position=sample(1:20, 8))
# Review Data
rbind(cbind(Movement="Move-A", dtMoveA), cbind(Movement="Move-B", dtMoveB))
Movement RobotID Position
1: Move-A 1 18
2: Move-A 1 20
3: Move-A 1 15
4: Move-A 1 8
5: Move-A 2 13
6: Move-A 2 2
7: Move-A 2 9
8: Move-A 2 12
9: Move-B 1 18
10: Move-B 1 14
11: Move-B 1 13
12: Move-B 1 17 …Run Code Online (Sandbox Code Playgroud) 运行 2 个容器,其中mycontainer2必须使用相同的网络堆栈mycontainer1。就好像两个容器在同一台机器上运行一样。docker run这是我尝试使用--network container:xxx来实现的方法
$ docker run -it --rm --name mycontainer1 -p 6666:7777 myregistry/my-container1:latest
$ docker run -it --rm --network container:mycontainer1 --name mycontainer2 myregistry/my-container2:latest
Run Code Online (Sandbox Code Playgroud)
我尝试使用docker-compose以下命令来复制此行为。但网络:的定义docker-compose.yaml并不表示与--network container:xxx的选项等效的内容docker run。是否可以docker-compose配置两个容器使用相同的网络堆栈?
我想在Windows 2008 R2上部署Web应用程序.我知道单独的PowerShell命令可以执行各种任务.但我想把它放到一个很好的PowerShell脚本中.
我只需要语法,请你帮我做下面的动作:
测试C:\Inetpub\MyWebsite文件夹是否存在,如果不存在,则创建它.
在IIS7中测试是否MyWebsite存在,如果没有创建它(我知道如何Import-Module WebAdministration调用New-WebSite)
现在复杂的部分.我从Visual Studio 2010准备的软件包中部署了一个Web站点.VS提供了一个.cmd文件,我只需要在DOS提示符下执行它.这意味着我必须离开PS控制台,打开DOS控制台来运行该cmd文件.是否可以.cmd从PowerShell控制台中运行文件?
使用git 2.11,git rebase文档说:
如果提供了--onto选项,则当前分支将重置为<upstream>或<newbase>.这与git reset --hard(或)具有完全相同的效果.ORIG_HEAD设置为在重置之前指向分支的尖端.
我理解它upstream并且newbase指向相同的"基本引用",这意味着下面的两个rebase语法是等价的:
git rebase ABC
git rebase --onto ABC
Run Code Online (Sandbox Code Playgroud)
这是我设置的演示.让我们假设当前分支是FeatureABC与远程分支完全同步.
#---create two identical branches, behind current branch by 5 commits
(FeatureABC) git branch Demo1-Rebase-ABC HEAD~4
(FeatureABC) git branch Demo2-Rebase-onto-ABC HEAD~4
#---Make a new commit in branch Demo1
git checkout Demo1-Rebase-ABC
echo "Demo of: git rebase FeatureABC Demo1-Rebase-ABC" > ./Demo1_BogusFile.txt
git add ./Demo1_BogusFile.txt
git commit -m "Create file Demo1_BogusFile.txt"
git rebase FeatureABC
Run Code Online (Sandbox Code Playgroud)
首先,倒带头重播你的工作
...应用:创建文件Demo1_BogusFile.txt
git log --oneline -3 …
来自Akka文档,流水线和并行性
默认情况下,将Akka Streams处理阶段(即Flow和Source或图形结点上的简单运算符)“融合”在一起,并按顺序执行。这避免了跨越异步边界的事件的开销,但将流程限制为在任何给定时间最多执行一个阶段。
跨越异步边界的事件是什么意思?
在《两个莫妮克斯流的传说》和相应的幻灯片中也经常使用相同的术语
==运营商是否真的按内容比较List?特别是关于空列表?
以下比较按预期工作
List("A", "B", "C") == "ABC".split("").toList // true
List() == List() // true
List.empty[String] == List.empty[String] // true
Run Code Online (Sandbox Code Playgroud)
但是,不同类型的空列表比较会产生令人困惑的结果:
List.empty[String] == List.empty[Int] // true: on different types?
Run Code Online (Sandbox Code Playgroud)
编辑:在最初的问题,我做了一个误导性的测试案例,安德烈已经澄清了.谢谢.转载于此
val emptyStrSplit = "".split("").toList // List("") and not List() as displayed in Console
List.empty[String] == emptyStrSplit // false: b/c List() != List("")
Run Code Online (Sandbox Code Playgroud) 在 Kubernetes 文档列出集群中运行的所有容器映像中,我们可以通过以下方式列出所有容器:
kubectl get pods --all-namespaces -o jsonpath="{..image}" |\
tr -s '[[:space:]]' '\n' |\
sort |\
uniq -c
Run Code Online (Sandbox Code Playgroud)
下面是一个输出示例:
1 cdkbot/addon-resizer-amd64:1.8.1
1 cdkbot/hostpath-provisioner-amd64:1.0.0
1 cdkbot/registry-amd64:2.6
1 coredns/coredns:1.6.6
1 docker.io/cdkbot/addon-resizer-amd64:1.8.1
1 docker.io/cdkbot/hostpath-provisioner-amd64:1.0.0
1 docker.io/cdkbot/registry-amd64:2.6
1 docker.io/coredns/coredns:1.6.6
1 docker.io/grafana/grafana:6.4.3
2 docker.io/istio/citadel:1.5.1
2 docker.io/istio/examples-bookinfo-details-v1:1.15.0
2 docker.io/istio/examples-bookinfo-productpage-v1:1.15.0
2 docker.io/istio/examples-bookinfo-ratings-v1:1.15.0
2 docker.io/istio/examples-bookinfo-reviews-v1:1.15.0
2 docker.io/istio/examples-bookinfo-reviews-v2:1.15.0
2 docker.io/istio/examples-bookinfo-reviews-v3:1.15.0
2 docker.io/istio/galley:1.5.1
4 docker.io/istio/kubectl:1.5.1
4 docker.io/istio/mixer:1.5.1
2 docker.io/istio/pilot:1.5.1
34 docker.io/istio/proxyv2:1.5.1
2 docker.io/istio/sidecar_injector:1.5.1
2 docker.io/jaegertracing/all-in-one:1.16
1 docker.io/kubernetesui/dashboard:v2.0.0
1 docker.io/kubernetesui/metrics-scraper:v1.0.4
2 docker.io/library/nginx:latest
2 docker.io/prom/prometheus:v2.12.0
1 docker.io/radial/busyboxplus:curl
1 grafana/grafana:6.4.3 …Run Code Online (Sandbox Code Playgroud) 使用 Kubernetes 1.19.3,我使用 3 种不同的方式初始化 env 变量值:
env pod 定义中具有显式键/值的字段envFrom使用configMapRef和secretRef当一个键名重复时,如下例所示,DUPLIK1并DUPLIK2用不同的值多次定义。
Kubernetes 用于将最终值分配给变量的优先规则是什么?
# create some test Key/Value configs and Key/Value secrets
kubectl create configmap myconfigmap --from-literal=DUPLIK1=myConfig1 --from-literal=CMKEY1=CMval1 --from-literal=DUPLIK2=FromConfigMap -n mydebugns
kubectl create secret generic mysecret --from-literal=SECRETKEY1=SECval1 --from-literal=SECRETKEY2=SECval2 --from-literal=DUPLIK2=FromSecret -n mydebugns
# create a test pod
cat <<EOF | kubectl apply -n mydebugns -f -
apiVersion: v1
kind: Pod
metadata:
name: pod1
spec:
containers:
- name: container1
image: busybox
command: [ …Run Code Online (Sandbox Code Playgroud) 在下面的代码中,版本1给出了正确的结果.我在V2中做了一个小变化.无值已经消失,这是好的,因为这是For Expression的工作方式.但是什么原因导致V2中的yield输出不再尊重myList.lift()返回的数据类型,这是一个Option(如V1所示)?
val myList = List(12, 34, "ABC")
Run Code Online (Sandbox Code Playgroud)
版本1
for { i <- (0 to 3).toList } yield myList.lift(i)
// res1: List[Option[Any]] = List(Some(12), Some(34), Some(ABC), None)
Run Code Online (Sandbox Code Playgroud)
版本2
for {
i <- (0 to 3).toList
x <- myList.lift(i)
} yield x
// res2: List[Any] = List(12, 34, ABC)
Run Code Online (Sandbox Code Playgroud) 两个List构造在编译/内存占用方面是否相同?
val list1 = x1 :: x2 :: x3 :: Nil
val list2 = List(x1, x2, x3)
Run Code Online (Sandbox Code Playgroud)
我认为list1更昂贵,因为每个h :: t创建一个List,然后连接每个新元素(产生一个新列表)直到最终列表.同时list2创建一个List.
让我们想象一个bigset.containSubset(smallset)返回true/false 的函数
结果如何应用于以下边缘情况:
bigset和smallset是空的bigset是非smallset空的并且是空的如果我任意定义"如果两个集合的交集给出的结果与较小的集合相同,那么它smallset就是一个子集".然后答案是true针对上述两种情况.这是正确的假设吗?
scala> Set().intersect(Set())
res1: scala.collection.immutable.Set[Nothing] = Set()
scala> Set(1,2,3).intersect(Set())
res2: scala.collection.immutable.Set[Int] = Set()
Run Code Online (Sandbox Code Playgroud) currentTimeMillis()以毫秒为单位返回当前时间
nanoTime()返回正在运行的Java虚拟机的高分辨率时间源的当前值,以纳秒为单位.
严格来说,纳秒是1e-9,毫秒是1e-3.因此,以纳秒为单位的持续时间必须是相同持续时间的1e6的倍数(以毫秒为单位).实际情况并非如此,原因是什么?
scala> System.nanoTime / System.currentTimeMillis
res0: Long = 107
Run Code Online (Sandbox Code Playgroud) scala ×5
data.table ×2
join ×2
kubernetes ×2
r ×2
akka ×1
asynchronous ×1
configmap ×1
docker ×1
dplyr ×1
equality ×1
equals ×1
git ×1
git-rebase ×1
iis-7 ×1
java ×1
kubectl ×1
powershell ×1
streaming ×1
subtyping ×1
types ×1