这是我的代码。我在数据块中运行它。
library(sparklyr)
library(dplyr)
library(arrow)
sc <- spark_connect(method = "databricks")
tbl_change_db(sc, "prod")
trip_ids <- spark_read_table(sc, "signals",memory=F) %>%
slice_sample(10) %>%
pull(trip_identifier)
Run Code Online (Sandbox Code Playgroud)
尽管我只查询 10 个样本,但该代码非常慢,需要几个小时才能运行。这是为什么?有没有办法提高性能?
谢谢你!
我有两个map/data.tables.一个由键值组成,另一个由一些键组成.我想将第一个地图中的值映射到第二个地图的键.如何才能做到这一点?
这是一些示例代码:
map1<-data.table( k=c("A","B"), v=c(2,3) )
map2<-data.table( k2=c("A","B","A","A"))
Run Code Online (Sandbox Code Playgroud)
如何在map2中生成包含c(2,3,2,2)的新列v2?
以下代码:
set.seed(0)
m<-matrix(data=runif(6),nrow=2)
apply(m,1,print)
apply(m,1,function(x) print(x) )
Run Code Online (Sandbox Code Playgroud)
得到:
[1] 0.8966972 0.3721239 0.9082078
[1] 0.2655087 0.5728534 0.2016819
[,1] [,2]
[1,] 0.8966972 0.2655087
[2,] 0.3721239 0.5728534
[3,] 0.9082078 0.2016819
Run Code Online (Sandbox Code Playgroud)
因此,一次打印按行逐行执行,另一次按列执行.为什么?根据我的理解,两次调用apply/print应该做同样的事情.
让我们从一些简单的代码开始:
require(randomForest)
randomForest(mpg~.,mtcars,ntree=10)
Run Code Online (Sandbox Code Playgroud)
这构建了一个由10棵树组成的随机森林.
我想要的是将参数存储在列表中,而不是进行函数调用.像这样的东西:
require(randomForest)
l<-list(ntree=10)
randomForest(mpg~.,mtcars,l[[1]])
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.错误消息是:
Error in if (ncol(x) != ncol(xtest)) stop("x and xtest must have same number of columns") : argument is of length zero
Run Code Online (Sandbox Code Playgroud)
这表明randomForest的参数xtest = NULL设置为10而不是ntree.
这是为什么?如何将参数ntree作为列表元素传递?
谢谢.
我的postgresql数据库中有一个hstore列.数据库的每一行在hstore-column中具有不同数量的键/值.如何获得每行的键/值数?
我尝试绘制三点的Voronoi图:
library(tripack)
x<-c(1.7,-2.2,0.5)
y<-c(-0.6,-0.2,0.8)
v<-voronoi.mosaic(x,y)
plot(v)
Run Code Online (Sandbox Code Playgroud)
然而,它只是显示一个空图.
print(v)
Run Code Online (Sandbox Code Playgroud)
得到:
voronoi mosaic:
nodes: (x,y): neighbours (<0: dummy node)
1: (-0.3238956,-1.120482): -1 -2 -3
dummy nodes: (x,y)
1: (-0.3238956,-1.120482)
2: (-0.3238956,-1.120482)
3: (-0.3238956,-1.120482)
Run Code Online (Sandbox Code Playgroud)
这是一个错误吗?这有道理吗?根据我的理解,从三点构建Voronoi图表应该是完美的.
如何将参数传递给插入符号汇总函数?
例如, caret 的 twoClassSummary 函数具有以下签名: twoClassSummary(data, lev = NULL, model = NULL)
参数 lev 指定了我感兴趣的因子级别。现在我想告诉 caret 我对因子级别“false”的摘要感兴趣。就像是
trainControl(summary=twoClassSummary(lev="false"))
Run Code Online (Sandbox Code Playgroud)
不起作用。如何将参数传递给汇总函数?谢谢!
假设我们有一个简单的数据表:
d <- data.table(a=c(1,2,3),b=c("A","B","C"))
Run Code Online (Sandbox Code Playgroud)
它的内容是:
a b
1: 1 A
2: 2 B
3: 3 C
Run Code Online (Sandbox Code Playgroud)
现在,我想将数据表的每一行彼此连接/合并。结果应如下所示:
a b c d
1: 1 A 1 A
2: 1 A 2 B
3: 1 A 3 C
4: 2 B 1 A
5: 2 B 2 B
6: 2 B 3 C
7: 3 C 1 A
8: 3 C 2 B
9: 3 C 3 C
Run Code Online (Sandbox Code Playgroud)
因此,每一行基本上都与整个数据表绑定在一起。最有效的方法是什么?可以仅使用data.table语法完成此操作吗?
谢谢!
编辑:data.table的CJ方法确实建立了笛卡尔乘积,但仅用于向量,而不是表。
r ×7
data.table ×2
apache-spark ×1
hstore ×1
join ×1
parameters ×1
postgresql ×1
r-caret ×1
sparklyr ×1
sql ×1