小编Dav*_*ein的帖子

Qt Creator c ++ 11语法突出显示通用项目

我的核心问题是,当使用Qt Creator作为"通用"(非Qt)项目的代码编辑器时,如何告诉它使用c ++ 11语法高亮?

我有一个c ++ 11项目,我已经工作了一段时间,我决定尝试给Qt Creator.这是一个简单的vanilla c ++项目,带有手动编码的makefile等等.

Qt Creator打开项目("eSLIME")就好了,创建了三个文件:eSLIME.config,eSLIME.includes和eSLIME.files.它没有创建.pro文件.

似乎没有认识到c ++ 11的调用.例如,它#include <unordered_set>以绿色突出显示" ",表示没有此类文件或目录.

我怀疑我应该在.config文件中添加一些东西,但我无法弄清楚什么和谷歌搜索没有帮助.我试着附加-std = c ++ 0x,但是没有用.

PS:代码太破碎了,无法立即构建,这就是我切换到IDE的原因.

c++ qt qt-creator c++11

10
推荐指数
2
解决办法
2221
查看次数

用dplyr中的转换数据替换SQL数据库表

我经常在dplyr中对数据进行替换时替换数据,尤其是在处理大型数据集时.当我使用SQL支持的数据集时,我不确定如何优雅地执行此操作,至少不使用SQLite.

我在dplyr数据库插图或SO上找不到任何关于这个目标的讨论,这也让我想知道我最初做的事情是否有问题; 但是,它似乎是处理大型数据集的自然方式.

无论如何,最直观的方法不起作用:

library(dplyr)
library(RSQLite)

db2 <- src_sqlite("trouble.sqlite", create = TRUE)
trouble <- data.frame(values = c(5, 1, 3))
trouble.db <- copy_to(db2, trouble, temporary = FALSE)

collect(trouble.db) # 5, 3, 1

trouble.db <- trouble.db %>% arrange(values)
collect(trouble.db) # 1, 3, 5

trouble.in <- tbl(db2, sql("SELECT * from trouble"))
collect(trouble.in) # 5, 3, 1
Run Code Online (Sandbox Code Playgroud)

就地复制的另一种直观语法给出了"表已存在"错误:

trouble.db <- copy_to(db2, as.data.frame(trouble.db), name="trouble", temporary = FALSE)
Run Code Online (Sandbox Code Playgroud)

一种解决方案是手动删除表并重建它,这就是我一直在做的事情:

db2$con %>% db_drop_table(table = "trouble")
trouble <- collect(trouble.db)
trouble.db <- copy_to(db2, trouble, temporary = FALSE)
Run Code Online (Sandbox Code Playgroud)

另一个是放弃替换并创建一系列临时表,我发现这些表并不美观,但我认为这可能是推荐的范例:

trouble_temp …
Run Code Online (Sandbox Code Playgroud)

sql database sqlite r dplyr

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

将组计数列添加到PySpark数据帧

由于其优越的Spark处理能力,我来自R和tidyverse到PySpark,我正在努力将某些概念从一个上下文映射到另一个上下文.

特别是,假设我有一个如下所示的数据集

x | y
--+--
a | 5
a | 8
a | 7
b | 1
Run Code Online (Sandbox Code Playgroud)

我想添加一个包含每个x值的行数的列,如下所示:

x | y | n
--+---+---
a | 5 | 3
a | 8 | 3
a | 7 | 3
b | 1 | 1
Run Code Online (Sandbox Code Playgroud)

在dplyr中,我只想说:

import(tidyverse)

df <- read_csv("...")
df %>%
    group_by(x) %>%
    mutate(n = n()) %>%
    ungroup()
Run Code Online (Sandbox Code Playgroud)

就是这样.如果我想按行数总结一下,我可以在PySpark中做一些简单的事情:

from pyspark.sql import SparkSession
from pyspark.sql.functions import col

spark = SparkSession.builder.getOrCreate()

spark.read.csv("...") \
    .groupBy(col("x")) …
Run Code Online (Sandbox Code Playgroud)

dplyr apache-spark pyspark

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

IntelliJ IDEA 13:运行测试后导航堆栈跟踪的键盘快捷键?

当我在 IntelliJ IDEA 13.01 Ultimate 中运行测试时,幸运的是它通过了。但是,在极少数情况下(哈!),当我遇到异常时,它会在Run上下文的右侧显示该异常,如下所示:

使用堆栈跟踪运行上下文

两个窗格之间的向上和向下箭头可以引导您完成堆栈跟踪,这很棒。他们声称有一个键盘快捷键,ctrl+alt+down并且ctrl+alt+up. 但是这些快捷方式似乎不适用于任何明显的工作流程,而且我总是被迫使用鼠标。事实上,这是我唯一一次必须在 IntelliJ IDEA 工作流程中使用鼠标。我究竟做错了什么?

  1. shift-alt-F10 选择我想看的测试用例。
  2. 出现下图,但两个蓝色箭头变灰。无论编辑器窗口是否包含相关的源文件,都是如此。
  3. 使用鼠标,单击堆栈跟踪中的一个项目。
  4. 这两个箭头现在是彩色的,可以通过单击它们来使用。但是,他们的键盘快捷键无法使用。
  5. 在我不理解的情况下,键盘快捷键似乎偶尔会起作用。

我正在使用ideavim插件——这可能是一个问题吗?

intellij-idea ideavim

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

sparklyr 堆空间不足,但内存充足

即使在相当小的数据集上,我也会遇到堆空间错误。我可以确定我没有耗尽系统内存。例如,考虑一个包含大约 20M 行和 9 列的数据集,它在磁盘上占用 1GB。我在具有 30GB 内存的 Google Compute 节点上使用它。

假设我在名为df. 以下工作正常,虽然有点慢:

library(tidyverse) 
uniques <- search_raw_lt %>%
    group_by(my_key) %>%
    summarise() %>%
    ungroup()
Run Code Online (Sandbox Code Playgroud)

下面抛出java.lang.OutOfMemoryError: Java heap space.

library(tidyverse)
library(sparklyr)
sc <- spark_connect(master = "local")

df_tbl <- copy_to(sc, df)

unique_spark <- df_tbl %>%
  group_by(my_key) %>%
  summarise() %>%
  ungroup() %>%
  collect()
Run Code Online (Sandbox Code Playgroud)

我尝试了这个建议来增加 Spark 的堆空间。问题仍然存在。在 上htop查看机器的状态,我看到总内存使用量从未超过 10GB。

library(tidyverse)
library(sparklyr)

config <- spark_config()
config[["sparklyr.shell.conf"]] <- "spark.driver.extraJavaOptions=-XX:MaxHeapSize=24G"

sc <- spark_connect(master = "local")

df_tbl <- copy_to(sc, df)

unique_spark …
Run Code Online (Sandbox Code Playgroud)

r dplyr apache-spark sparklyr

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

为什么 Terraform 看不到我手动安装的提供程序?

我正在尝试将RKE 提供程序安装为Rancher AWS 快速入门的一部分。该Terraform文件说,插件应该安装~/.terraform.d/plugins。RKE 文档说插件应该安装在~/terraform.d/plugins/<your_platform>.

为了协调冲突的信息,我尝试将二进制文件复制到以下所有位置,但 Terraform 从未见过其中任何一个:

~/.terraform.d/plugins/terraform-provider-rke
~/.terraform.d/plugins/rke
~/.terraform.d/plugins/darwin_amd64/terraform-provider-rke
~/.terraform.d/plugins/darwin_amd64/rke
~/terraform.d/plugins/terraform-provider-rke
~/terraform.d/plugins/rke
~/terraform.d/plugins/darwin_amd64/terraform-provider-rke
~/terraform.d/plugins/darwin_amd64/rke
Run Code Online (Sandbox Code Playgroud)

在每种情况下,当我运行时terraform init,都会出现以下错误:

Provider "rke" not available for installation.

A provider named "rke" could not be found in the Terraform Registry.

This may result from mistyping the provider name, or the given provider may
be a third-party provider that cannot be installed automatically.

In the latter case, the plugin must be installed manually …
Run Code Online (Sandbox Code Playgroud)

terraform rancher rke

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

如何在 eksctl 配置文件中为 VPC 设置可用区?

eksctl命令行上创建集群时,可以使用“区域”标志指定可用区,如下所示:

eksctl create cluster \
--name example \
--version 1.16 \
--region us-east-1 \
--zones us-east-1a,us-east-1b,us-east-1c
Run Code Online (Sandbox Code Playgroud)

eksctl文档中,注意到配置文件比标志更灵活。但是,eksctl配置文件选项的文档很少,并且无法从 flags 生成配置文件

存储eksctl库提供了一个示例,该示例使用具有预定义子网的现有 VPC,但这无法了解相同设置如何与从头VPC 相关。它也比标志所需的更细粒度。

如果一个人精通 golang(并且非常有耐心),则可以从源头上弄明白,但是 IMO 这违背了像eksctl.

有没有办法使用配置文件来实现上面标志示例中实现的功能?如果是这样,如何?

kubernetes amazon-eks eksctl

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

Kube2iam 是否不需要 EKS 和/或 EKS 的一部分?

在 Amazon EKS 用户指南中,有一个页面专门用于使用同名第三方工具AWS ALB Ingress Controller for Kubernetes创建 ALB 入口控制器。

EKS 用户指南和控制器文档都有自己的关于如何设置控制器的演练。

控制器提供的演练让您将 AWS 密钥硬编码到清单中,或者安装另一个名为Kube2iamDeployment的第三方工具。

AWS EKS 用户指南中的演练让您发布完全相同的Deployment清单,但您根本不必修改它。相反,您为控制器创建 IAM 角色(步骤 5)和 Kubernetes 服务账户(步骤 4),然后通过使用 IAM 角色的 ARN 注释服务账户来将它们链接在一起。乍一看,这似乎就是 Kube2iam 的用途。

这使我得出三个结论之一,我按照合理性的粗略顺序对它们进行了排序:

  1. EKS 包含 Kube2iam 的功能作为其功能之一(可能通过将 Kube2iam 合并到其代码库中),因此安装 Kube2iam 是多余的。
  2. eksctl在幕后安装 Kube2iam 作为associate-iam-oidc-provider.
  3. 控制器的文档是为早期版本的 Kubernetes 编写的,该功能现在已内置到库存控制平面中。

有人知道它是什么吗?为什么 AWS 演练不需要我安装 Kube2iam?

kubernetes kubernetes-ingress amazon-eks

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

使用mutate_each分配常量

我想将几列中的所有值都设置为NA.通常,如果我想使用相同的算法修改几个列,我将使用mutate_eachdplyr.从算法的角度来看,函数"x映射到null"似乎非常明确,所以我试着这样做.但是,我收到了一个错误:Error in make_call(x$expr, args) : Unknown inputs.

最小可重复的例子:

sample <- data.frame(a = seq(1, 3), b = seq(5, 7))

sample %>% mutate(a = 1, b = 1)           # Works fine
sample %>% mutate_each(funs(. - 1), a, b) # Works fine
sample %>% mutate_each(funs(1), a, b)     # Blows up
sample %>% mutate_each(funs(NA), a, b)    # Blows up
Run Code Online (Sandbox Code Playgroud)

我也试过明确定义一个函数,例如

mutate_each(funs(function(x) {NA}), Address, City, State, Zip)
Run Code Online (Sandbox Code Playgroud)

这会导致不同的错误:Error: Unsupported type CLOSXP for column "a".这样做的正确方法是什么?

r dplyr

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

R图像"增加'x'和'y'值预期" - 但它们是

我试图使用imageR中的函数.它报告"增加'x'和'y'值预期",但我相信我提供增加的'x'和'y'值.

我怀疑我不理解这个术语的含义,我的意思是"两个矢量'x'和'y',它们在空间(x,y)内构成一组完整的坐标对,并且首先排序通过'x'然后通过'y',使得x [i]> = x [i + k],{i,k> 0},并且类似于y."

这是一个最小的例子.

以下是以下内容diagnose.txt:

0   0   1
0   1   2
1   0   3
1   1   4
Run Code Online (Sandbox Code Playgroud)

我执行以下操作:

filename = "diagnose.txt"
t <- read.table(filename, header = FALSE, sep="\t", na.string='NaN')
colnames(t) <- c('x', 'y', 'z')
image(t$x, t$y, t$z)
Run Code Online (Sandbox Code Playgroud)

我收到的错误消息是"增加'x'和'y'值预期"

当然,这并不意味着我必须提供(不明确的)形式的数据:

0   0   1
1   1   2
2   2   3
3   3   4
Run Code Online (Sandbox Code Playgroud)

这甚至意味着什么?(PS:我也试过这个,只是为了好玩.你得到一个错误信息,就像你应该的那样,反映了坐标图像定义的不正确性.)

plot r

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

在EMR上将hadoop fs路径转换为hdfs://路径

我想知道如何将数据从EMR群集的HDFS文件系统移动到S3存储桶。我认识到我可以在Spark中直接写S3,但是原则上以后也应该很简单,到目前为止,我还没有发现这是真的。

AWS文档建议s3-dist-cp出于在HDFS和S3之间移动数据的目的。该文件s3-dist-cp国家的HDFS源应该在URL格式指定,即hdfs://path/to/file。到目前为止,我已经使用来在HDFS和本地文件系统之间移动数据hadoop fs -get,该语法采用path/to/file而不是hdfs://path/to/file。目前尚不清楚如何在两者之间进行映射。

我正在从SSH进入主节点。我尝试了以下方法,每个方法都有两个和三个斜杠:

  • hdfs:///[public IP]/path/to/file
  • hdfs:///[public IP]:8020/path/to/file
  • hdfs:///localhost/path/to/file
  • hdfs:///path/to/file
  • /path/to/file (以及许多变体)

在每种情况下,我的命令都按照文档的格式设置:

s3-dist-cp --src hdfs:// ... --dest s3:// my-bucket / destination

我已经尝试了单个文件和整个目录。在每种情况下,我都会得到一个错误,即源文件不存在。我究竟做错了什么?

hadoop amazon-s3 amazon-emr emr

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