2016-07-07 5 views
0

하나의 명령에서 테이블을 만들 : 나는 두 번 코드를 실행하면 나는테이블에 삽입 또는 내가 테이블로 PySpark DataFrame을 저장하기 위해 노력하고있어

u'Table `myDf` already exists.;' 

하는 경우를 얻을

myDf.write.saveAsTable("myDf") 

그러나 나는이 같은 저장 : u'Table not found: myDf;'

:

myDf.write.inserInto("myDf") 

나는이 오류가 발생합니다

그래서 코드를 실행 한 횟수에 관계없이 오류가 발생하지 않도록 테이블을 저장할 수 있습니까?

답변

0

테이블이 존재하는지 여부를 확인하기 위해 if condition을 넣을 수없는 이유는 무엇입니까?

사용 사례에 따라 registerDataFrameAsTable(df, tableName)을 사용하면 SQLContext의 인스턴스 수명 동안 만 존재하는 카탈로그의 임시 테이블로 지정된 DataFrame을 등록 할 수 있습니다.

자세한 내용은 documentation을 참조하십시오. 코드를 여러 번 실행하면 오류가 발생하지 않습니다.

0
myDf.write.mode("overwrite").saveAsTable("myDf") 

그것은 분명히 것 같은 시나리오 (나에게 모든 시간을 일) 그러나 여기 경우에 ref 당신이 좀 더 필요하다 "오 내가 그렇게 간단 알고 바랍니다."

+1

이 방법이 효과가 있을지 모르지만 이것이 작동하는 이유를 설명하면 더 좋습니다. –

+0

링크를 참조로 추가했습니다. – ShuaiYuan

관련 문제