我正在尝试从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")
它创造了一些东西,但我不知道如何使用它。
由于
答案 0 :(得分:1)
你可以通过多种方式实现......这取决于。
第一种方法:在查询中创建表格
sqlContext.sql("create table mytable AS SELECT info.updateTime FROM STATIONS")
// now you can query mytable
第二种方式:使用saveAsTable()
编写DataFramesqlContext.sql("SELECT info.updateTime FROM STATIONS").saveAsTable("othertable")