Искровой hivecontext работа с вопросами запросов
Я пытаюсь получить информацию от Jsons для создания таблиц в Hive.
Это моя схема Json:
root
|-- info: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- stations: array (nullable = true)
| | | |-- element: struct (containsNull = true)
| | | | |-- bikes: string (nullable = true)
| | | | |-- id: string (nullable = true)
| | | | |-- slots: string (nullable = true)
| | | | |-- streetName: string (nullable = true)
| | | | |-- type: string (nullable = true)
| | |-- updateTime: long (nullable = true)
|-- date: string (nullable = true)
|-- numRecords: string (nullable = true)
Я использую этот запрос:
sqlContext.sql("SELECT info.updateTime FROM STATIONS").foreach(println)
Вот что я получаю:
[WrappedArray(1449098169, 1449108553, 1449098468)]
Но я не знаю, как поместить эту информацию в таблицу, чтобы использовать ее после консоли Hive.
Я использовал это:
query.write.save("/home/cloudera/Desktop/select")
И это что-то создает, но я не знаю, как это использовать.
Спасибо
1 ответ
Вы можете сделать это несколькими способами... это зависит.
Первый способ: создать таблицу в запросе
sqlContext.sql("create table mytable AS SELECT info.updateTime FROM STATIONS")
// now you can query mytable
Второй способ: написать DataFrame с помощью saveAsTable()
sqlContext.sql("SELECT info.updateTime FROM STATIONS").saveAsTable("othertable")