从R中的SparkR数据框中删除选定的列

时间:2017-02-02 09:03:55

标签: r sparkr

我想从spark DataFrame中删除一大组列。以下代码适用于R但我的数据是火花数据帧而不是R数据帧(即d和d2是SparkR DataFrames,我使用join来构建d3)。实际上我在d3中有大约1100列。

d = data.frame(matrix(rnorm(200), nrow=10))
d2=data.frame(matrix(rnorm(200), nrow=10))

d$id=1:10
d2$id=1:10
d3=merge(d,d2, by="id")
colnames(d3)

我想从d3删除d2的所有列,除了少数(例如," X16.y"" X17.y"" X18除外)。 y")。每个列的名称都以下划线开头,例如" _id"。我需要为SparkR DataFrame执行此操作,而不是针对普通R数据帧。谁能建议怎么做?

我的意思是SparkR

d = data.frame(matrix(rnorm(200), nrow=10))
d2=data.frame(matrix(rnorm(200), nrow=10))
names(d2)=LETTERS[1:20]

d$id=1:10
d2$id=1:10


write.csv(d,"d.csv")
write.csv(d2,"d2.csv")
ds=read.df("d.csv", "csv", header = "true", inferSchema = "true", na.strings = "NA")
d2s=read.df("d2.csv", "csv", header = "true", inferSchema = "true", na.strings = "NA")
d3=join(ds,d2s,ds$id==d2s$id) 

0 个答案:

没有答案