복붙노트

[SCALA] 문자열에 필터 스파크 DataFrame는 포함

SCALA

문자열에 필터 스파크 DataFrame는 포함

나는 1.0.0 브로 스파크 1.3.0 및 스파크를 사용하고 있습니다.  나는 저장소 페이지의 예에서 일하고 있습니다. 이 다음 코드는 잘 작동합니다

val df = sqlContext.read.avro("src/test/resources/episodes.avro")
df.filter("doctor > 5").write.avro("/tmp/output")

의사 문자열이 문자열을 포함하는 경우하지만 필요한 경우 무엇을 볼 수? 우리는 문자열의 내부에 우리의 표현을 쓰고 있기 때문이다. 나는 "포함"는 무엇을해야합니까?

해결법

  1. ==============================

    1.당신이 사용할 수있는은 (임의의 순서로이 작품을) 포함

    당신이 사용할 수있는은 (임의의 순서로이 작품을) 포함

    df.filter($"foo".contains("bar"))
    

    추천 (_ 임의의 문자와 일치 %는 임의의 순서와 일치 파크 SQL 간단한 정규식과 같은 SQL)

    df.filter($"foo".like("bar"))
    

    또는 (자바 정규 표현식처럼) rlike :

    df.filter($"foo".rlike("bar"))
    

    요구 사항에 따라. LIKE와 RLIKE뿐만 아니라 SQL 식으로 작동합니다.

  2. ==============================

    2.pyspark에서, SparkSql 구문 :

    pyspark에서, SparkSql 구문 :

    where column_n like 'xyz%'
    

    작동하지 않을 수 있습니다.

    사용하다:

    where column_n RLIKE '^xyz' 
    

    이것은 완벽하게 잘 작동합니다.

  3. from https://stackoverflow.com/questions/35759099/filter-spark-dataframe-on-string-contains by cc-by-sa and MIT license