Искровой 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")
Другие вопросы по тегам