Spark-Sql返回0条记录而不修复hive表

时间:2018-02-11 08:36:08

标签: hadoop apache-spark hive

我正在做以下事情:

  1. 使用ALTER TABLE ... DROP IF EXISTS PARTITION (col='val1')
  2. 删除配置单元分区
  3. hdfs dfs -rm -r path_to_remove
  4. 运行提取程序,创建此分区(col='val1')并在HDFS文件夹下创建avro文件。
  5. sqlContext.sql("select count(0) from table1 where col='val1'").showMSCK REPAIR TABLE之前返回0。
  6. 是否必须执行修复步骤才能在spark-sql中再次查看数据?请指教。

1 个答案:

答案 0 :(得分:0)

如果它是外部表,是的,您需要修复该表。我不认为您需要使用托管表来执行此操作。

SparkSQL从Hive Metastore中读取信息,并且没有关于该分区的信息,Spark或任何其他使用Metastore的工具都无法计算任何内容