Spark를 배우고 있는데 왜 내 열에 액세스 할 수 없는지 알고 싶습니다. 이것은 내가 실행중인 명령입니다.
shakespeareDF.select(explode(split(shakespeareDF.sentence, " ")).alias("word")).filter(shakespeareDF.word != "")
또는
shakespeareDF.select(explode(split(shakespeareDF.sentence, " ")).alias("word")).filter(shakespeareDF["word"] != "")
두 명령 모두 나에게 제공 AttributeError: 'DataFrame' object has no attribute 'word'
되지만 이유를 모르겠습니다.
재미있는 것은 이것이 작동한다는 것입니다. shakespeareDF.select(explode(split(shakespeareDF.sentence, " ")).alias("word")).filter(col("word") != "")
그래서 내 질문은 : 왜 shakespeareDF.word
안되고 shakespeareDF["word"]
작동 하지 않고 왜 col("word")
작동합니까?
감사합니다
두 가지 행동 모두에 대해 재미 있거나 이상한 것은 없습니다.
생성 및 별칭에서 분할을 수행하는 첫 번째 DataFrame입니다. 그러면 해당 열이있는 새 DataFrame이 생성됩니다. 따라서 첫 번째 DataFrame 내부에서 새로 생성 된 열을 호출하면 분명히 거기에 없을 것이고 오류가 발생하는 이유입니다.
이제 두 번째 시도와 관련하여 Spark가 새로 생성 된 DataFrame의 스키마 내부에서 찾을 DataFrame에 관계없이 열 단어에 액세스하려고합니다.
나는 이것이 당신의 혼란에 답하기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다