빅데이터(BigData)/Spark

Spark에서 Dataframe을 이용하여 Hive 테이블 생성하기

leebaro 2020. 1. 3.
728x90

df라는 데이터프레임이 있을 경우 아래와 같이 실행하면 tb_df라는 테이블이 생성된다.

 

 

df.write.saveAsTable("tb_df")

df.write.saveAsTable("tb_df")

 

만약에 기존에 동일한 이름의 테이블이 있다면 아래와 같은 에러가 발생할 것이다.

Table `tb_df` already exists.

이런 에러가 발생한다면 두 가지방법으로 해결할 수 있다.

 

첫 번째 방법은 spark.sql을 이용하여 테이블이 있는 경우 삭제하는 것이다.

spark.sql("DROP TABLE IF EXISTS tb_df")

두 번째 방법은 데이터프레임으로 테이블을 만들 때 기존에 테이블이 있다면 overwrite하는 방법이다

 

df.write.mode(SaveMode.Overwrite).saveAsTable("tb_df")
#또는
df.write.mode("overwrite").saveAsTable("tb_df")

참고

https://stackoverflow.com/questions/57368751/spark-dataframe-write-optionmode-overwrite-saveastablefoo-fails-with

728x90