2017-12-29 5 views
1

내 Spark DataFrame의 하위 집합에 문제가 있습니다. SparkR에서 grep 사용 중 오류

은 내가 DataFrame 문자열로 포맷 ITEM_PRODUTO라는 열이 포함 nfe를 불렀다. 이 DataFrame을 항목 열에 "AREIA"라는 단어가 포함되는지 여부에 따라 부분 화하고 싶습니다. 나는 쉽게 정확한 구문을 기반으로 데이터를 부분 집합 할 수

nfe.subset1 <- subset(nfe, nfe$ITEM_PRODUTO == "AREIA LAVADA FINA") 

nfe.subset2 <- subset(nfe, nfe$ITEM_PRODUTO %in% "AREIA") 

그러나, 제가하고 싶은 것은 ITEM_PRODUTO 열에 단어 "레이아"를 포함하는 모든 행의 하위 집합입니다. 내가 GREP를 사용하려고하면,하지만, 나는 오류 메시지가 나타납니다 : 나는 구문을 여러 번 반복했는데,뿐만 아니라 grepl을 시도했습니다

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 

,하지만 아무것도 작동하는 것 같다 없습니다. 아마도 구문 오류 일 테지만 누구든지 나를 도울 수 있습니까?

감사합니다.

답변

1

표준 R 기능은 SparkDataFrame에 적용 할 수 없습니다.

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

또는 rlike :

where(nfe, rlike(nfe$ITEM_PRODUTO, ".*AREIA.*")) 
중 하나 like`를 사용하여