【问题标题】:spark hivecontext working with queries issuesspark hivecontext 处理查询问题
【发布时间】:2016-03-19 05:47:23
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: json apache-spark hive hdfs hivecontext


    【解决方案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")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-08
      相关资源
      最近更新 更多