Я попытался выполнить запрос на выборку для таблицы улья через оболочку 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/: введите описание изображения здесь