2016-08-24 3 views
1

내가 관리 하이브 테이블을 가지고 다음과 같은 명령을 사용하여 다른 데이터베이스로 이동 표는 성공적으로 이동 된 모든 데이터는 데이터베이스 아래스파크는 테이블의 내용을 읽을 수

alter table_name rename to new_db.table_name 

지금. 테이블은 HIVE에서 잘 보입니다. 그러나 Spark에서 테이블을 읽으려고하면 스키마를 읽을 수 있지만 거기에는 내용이 없습니다. 즉, count은 0을 반환합니다! 무슨 일이 일어난? 이 문제를 어떻게 해결할 수 있습니까?

나는 다음과 같은 코드를 사용하여 불꽃에 넣기 :

val t = sqlContext.table("new_db.table_name") 
+0

당신은 당신의 스파크 코드를 추가 할 수 있습니까? – David

+0

나는 그것을했다. 이것이 내가 항상 HIVE의 테이블을 스파크에로드하는 방법 인 이유가 잘못되어서는 안됩니다. –

답변

0

때때로 단지 이름을 변경하는 것만으로는 충분하지 않습니다, 나는 또한 위치를 변경했다.

sqlContext.sql(""" 
ALTER TABLE new_table 
SET LOCATION "hdfs://.../new_location" 
""") 

그리고 좋은 측정

sqlContext.sql(""" 
REFRESH TABLE new_table 
""") 

위치가 w 맞다면 당신은 다시 한 번 확인 할 수 있습니다에 대한 스파크에서 테이블을 새로 고침/describe formatted new_table

관련 문제