0

我正在尝试从 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")

它创造了一些东西,但我不知道如何使用它。

谢谢

4

1 回答 1

1

您可以通过多种方式做到这一点……这取决于。

第一种方式:在查询中创建表

sqlContext.sql("create table mytable AS SELECT info.updateTime FROM STATIONS")
// now you can query mytable

第二种方式:用 saveAsTable() 写 DataFrame

sqlContext.sql("SELECT info.updateTime FROM STATIONS").saveAsTable("othertable")
于 2015-12-16T03:12:19.737 回答