【问题标题】:Error in using grep in SparkR在 SparkR 中使用 grep 时出错
【发布时间】:2018-06-10 01:53:00
【问题描述】:

我的 Spark DataFrame 子集存在问题。

我有一个名为nfe 的DataFrame,其中包含一个名为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 apache-spark sparkr


    【解决方案1】:

    标准 R 函数不能应用于 SparkDataFrame。使用喜欢`:

    where(nfe, like(nfe$ITEM_PRODUTO, "%AREIA%"))
    

    或rlike:

    where(nfe, rlike(nfe$ITEM_PRODUTO, ".*AREIA.*"))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-16
      • 1970-01-01
      • 2018-04-22
      • 2015-09-15
      • 2015-06-28
      • 1970-01-01
      • 2013-10-30
      • 1970-01-01
      相关资源
      最近更新 更多