Улей выберите заявление из искровой оболочки - PullRequest
0 голосов
/ 11 апреля 2020

Я попытался выполнить запрос на выборку для таблицы улья через оболочку spark. это мой код:

scala >import org.apache.spark.sql.hive.HiveContext                                                                                                                     
scala >val sqlContext = new HiveContext(sc)    
scala >val df = sqlContext.sql("select count(*) from timeserie")
scala >df.head  

, но я получаю сообщение об ошибке при выполнении любой команды чтения (df.head, df.count, df.show). это ошибка:

org.apache.spark.sql.catalyst.errors.package$TreeNodeException: execute, tree:                                                                                          
Exchange SinglePartition                                                                                                                                                
+- *(1) HashAggregate(keys=[], functions=[partial_count(1)], output=[count#13L])                                                                                        
+- HiveTableScan HiveTableRelation `default`.`timeserie`, 
org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, [data#0, temperature#1, hum#2]                         

at org.apache.spark.sql.catalyst.errors.package$.attachTree(package.scala:56)                                                                                         
at org.apache.spark.sql.execution.exchange.ShuffleExchangeExec.doExecute(ShuffleExchangeExec.scala:119)                                                               
at org.apache.spark.sql.execution.SparkPlan$$anonfun$execute$1.apply(SparkPlan.scala:131)                                                                                                                                                                                                                                                                                  
... 49 elided                                                                                                                                                         
Caused by: java.io.IOException: Not a file: hdfs://sandbox- 
hdp.hortonworks.com:8020/warehouse/tablespace/managed/hive/timeserie/delta_0000001_0000001_0000              
at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:337)                                                                                       
at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:200)                                                                                                  
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:253)                                                                                                
at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:251)                                                                                                                                                                                                                                                                                     
... 73 more  

ps: при выполнении запроса show tables я получаю результат без ошибки

show create table timeser ie: show create table

и hdfs dfs -ls ../../warehouse/tablespace/managed/hive/bdp.db/timeserie: hdfs dfs -ls

результат hdfs dfs -ls -R ../../warehouse/tablespace/managed/hive/bdp.db/serie/: введите описание изображения здесь

...