我有根据客户端名称从数据库中提取和处理数据的代码。某些客户端可能拥有不包含特定列名称的数据,例如,last_name或first_name。对于不使用last_nameor 的客户first_name,我不在乎。对于确实使用这些字段中的任何一个的客户,我需要使用mutate()这些列,toupper()以便我可以稍后在 ETL 过程中加入这些标准化字段。
现在,我正在使用一系列if()语句和一些辅助函数来查看数据帧的名称,然后在它们存在时进行变异。我使用if()语句是因为ifelse()主要是矢量化的并且不能很好地处理数据帧。
library(dplyr)
set.seed(256)
b <- data.frame(id = sample(1:100, 5, FALSE),
col_name = sample(1000:9999, 5, FALSE),
another_col = sample(1000:9999, 5, FALSE))
d <- data.frame(id = sample(1:100, 5, FALSE),
col_name = sample(1000:9999, 5, FALSE),
last_name = sample(letters, 5, FALSE))
mutate_first_last <- function(df){
mutate_first_name <- function(df){
df %>%
mutate(first_name = first_name %>% toupper())
}
mutate_last_name <- function(df){
df …Run Code Online (Sandbox Code Playgroud) 我正在使用Terraform在AWS中构建一些基础架构。我创建了几个S3存储桶,并希望Glue搜寻器每小时对这些存储桶进行一次爬网。我的Terraform Glue目录数据库,角色和策略都构建良好,但是当我尝试通过向爬网程序的s3_target{}一部分添加四个S3路径来创建爬网程序资源时,出现了故障:
resource "aws_glue_crawler" "datalake_crawler" {
database_name = "${var.glue_db_name}"
name = "${var.crawler_name}"
role = "${aws_iam_role.glue.id}"
s3_target {
# count = "${length(var.data_source_path)}"
path = "${var.data_source_path}"#"${formatlist("%s", var.data_source_path)}"
}
}
Run Code Online (Sandbox Code Playgroud)
这会导致错误:
Error: aws_glue_crawler.datalake_crawler: s3_target.0.path must be a single value, not a list
Run Code Online (Sandbox Code Playgroud)
我尝试在中添加一条count语句,s3_target但这失败。我也尝试添加
"${formatlist("%s", var.data_source_path)}"
Run Code Online (Sandbox Code Playgroud)
在path争论中,但这也失败了。
我可以s3使用Terraform向Glue履带添加多个路径吗?我可以通过AWS控制台实现这一点,但这需要使用基础架构作为代码来完成。
amazon-s3 amazon-web-services terraform aws-glue terraform-provider-aws
所以,我可以随便写一个任意类型JSON有Newtonsoft.Json:
type X = {
Number: decimal
Sequence: decimal
NumList: decimal list
}
let createItem (n, s, nL) =
{Number = n;
Sequence = s;
NumList = nL}
let items =
[
(1M, 1M, [1M; 2M; 3M])
(2M, 2M, [2M; 4M; 6M])
(3M, 3M, [3M; 6M; 9M])
]
|> List.map createItem
open Newtonsoft.Json
open System.IO
let writeToJson (path: string) (obj: 'a) : unit =
let serialized = JsonConvert.SerializeObject(obj)
File.WriteAllText(path, serialized)
writeToJson "xList.json" items
Run Code Online (Sandbox Code Playgroud)
如何编写足够通用的函数以便我可以读取JSON文件?换句话说,我想要像: …
我试图在(大)数据集中找到唯一的物种,但它在unique()结果中返回两次相同的名称.
TestData <- read.csv("Data\\TestData.csv", stringsAsFactors = FALSE)
unique(TestData$Species)
[1] "Amblyeleotris aurora" "Amblyeleotris aurora" "Cetoscarus bicolor" "Cetoscarus bicolor" "Cephalopholis polleni"
[6] "Cephalopholis polleni"
Run Code Online (Sandbox Code Playgroud)
作为非唯一返回的相同物种之间没有拼写不匹配,当我查看csv文件时,它们看起来都是一样的.但是,当我将名称复制到R控制台或脚本时,有一个红色.将Genus和Species分开.喜欢Amblyeleotris.aurora.
这可能是csv文件的问题,但是当我在Notepad ++和MS excel中查看文件时,不会出现点.但是,对于相同物种(即"Amblyeleotris aurora"和"Amblyeleotris aurora"),MS Excel中的相等性检查评估为false.
如上所述,这更可能是csv的问题,但我想找到是否有办法在R内克服这个问题.
如果已经在某个地方回答过这个问题,或者这个问题太简单了,我可以提前道歉,但我没有在堆栈或互联网上找到任何解决方案.
下面是示例TestData csv文件的链接,用于复制ScriptPanel的示例和屏幕截图以显示红点.
干杯Shimal