2014-12-26 6 views
0

Я запускаю предварительно созданную версию Spark 1.2 для CDH 4 на CentOS. Я скопировал файл hive-site.xml в каталог conf в Spark, чтобы он увидел метастабильность улья.Spark не может запросить таблицы улья, которые он видит?

У меня есть три таблицы в Hive (объект, newpercentile, percentile), все из которых я могу запросить из CLI Hive. После того, как я вхожу в Spark и создаю контекст Hive: val hiveC = new org.apache.spark.sql.hive.HiveContext (sc) У меня возникает проблема с запросом этих таблиц.

Если я запустил следующую команду: val tableList = hiveC.hql («показать таблицы») и сделать collect() в таблицеList, я получаю этот результат: res0: Array [org.apache.spark.sql.Row ] = Array ([объект], [newpercentile], [percentile])

Если я запустил эту команду, чтобы получить счет таблицы объектов: val facTable = hiveC.hql ("select count (*) from facility «), я получаю следующий вывод, который я беру, чтобы означать, что он не может найти таблицу объекта для запроса его:

scala> val facTable = hiveC.hql("select count(*) from facility") 
warning: there were 1 deprecation warning(s); re-run with -deprecation for details 
14/12/26 10:27:26 WARN HiveConf: DEPRECATED: Configuration property hive.metastore.local no longer has any effect. Make sure to provide a valid value for hive.metastore.uris if you are connecting to a remote metastore. 

14/12/26 10:27:26 INFO ParseDriver: Parsing command: select count(*) from facility 
14/12/26 10:27:26 INFO ParseDriver: Parse Completed 
14/12/26 10:27:26 INFO MemoryStore: ensureFreeSpace(355177) called with curMem=0, maxMem=277842493 
14/12/26 10:27:26 INFO MemoryStore: Block broadcast_0 stored as values in memory (estimated size 346.9 KB, free 264.6 MB) 
14/12/26 10:27:26 INFO MemoryStore: ensureFreeSpace(50689) called with curMem=355177, maxMem=277842493 
14/12/26 10:27:26 INFO MemoryStore: Block broadcast_0_piece0 stored as bytes in memory (estimated size 49.5 KB, free 264.6 MB) 
14/12/26 10:27:26 INFO BlockManagerInfo: Added broadcast_0_piece0 in memory on 10.0.2.15:45305 (size: 49.5 KB, free: 264.9 MB) 
14/12/26 10:27:26 INFO BlockManagerMaster: Updated info of block broadcast_0_piece0 
14/12/26 10:27:26 INFO SparkContext: Created broadcast 0 from broadcast at TableReader.scala:68 

facTable: org.apache.spark.sql.SchemaRDD = 
SchemaRDD[2] at RDD at SchemaRDD.scala:108 
== Query Plan == 
== Physical Plan == 

Aggregate false, [], [Coalesce(SUM(PartialCount#38L),0) AS _c0#5L] 
Exchange SinglePartition 
    Aggregate true, [], [COUNT(1) AS PartialCount#38L] 
    HiveTableScan [], (MetastoreRelation default, facility, None), None 

Любая помощь будет оценена. Благодарю.

ответ

3
scala> val facTable = hiveC.hql("select count(*) from facility") 

Отлично! У вас есть RDD, теперь что вы хотите с этим делать?

scala> facTable.collect() 

Помните, что РДД абстракция на вершине ваших данных и не материализовалась, пока не вызвать действие на него, такие как collect() или count().

При попытке использовать несуществующее имя таблицы вы получите очень очевидную ошибку.

+1

Вы правы! Сейчас все выглядит хорошо. Спасибо, лабиринт. Список Ничего в последней строке меня смутило, мягко говоря. Я ценю ваш быстрый ответ. – Pitt

Смежные вопросы