我对Spark DataFrame的子集化存在问题。
我有一个名为DataFrame
的nfe
,其中包含一个名为ITEM_PRODUTO
的列,其格式为字符串。我想根据项目列是否包含单词“AREIA”来对此DataFrame
进行子集化。我可以根据一个确切的短语轻松地对数据进行子集化:
nfe.subset1 <- subset(nfe, nfe$ITEM_PRODUTO == "AREIA LAVADA FINA")
nfe.subset2 <- subset(nfe, nfe$ITEM_PRODUTO %in% "AREIA")
但是,我想要的是ITEM_PRODUTO列中包含单词“AREIA”的所有行的子集。但是,当我尝试使用grep时,我收到一条错误消息:
nfe.subset3 <- subset(nfe, grep("AREIA", nfe$ITEM_PRODUTO))
# Error in as.character.default(x) :
# no method for coercing this S4 class to a vector
我已经尝试了多次迭代的语法,并尝试了grepl
,但似乎没有任何效果。这可能是一个语法错误,但任何人都可以帮助我吗?
谢谢!
标准R函数不能应用于SparkDataFrame
。使用像``:
where(nfe, like(nfe$ITEM_PRODUTO, "%AREIA%"))
或者rlike
:
where(nfe, rlike(nfe$ITEM_PRODUTO, ".*AREIA.*"))