bgiquery - zeppelin时间戳未呈现为日期

时间:2017-12-14 16:55:31

标签: timestamp google-bigquery

我正在使用Bigquery解释器在zeppelin上运行Bigquery查询,查询在具有类型为TIMESTAMP的字段的表上运行。

行为: 1.当在google bigquery控制台上执行查询时,TIMESTAMP字段被视为日期,这是有效的默认行为,因为它是人类可读的。它与任何SQL数据库一样。 2.当使用bigquery解释器在zeppelin上执行相同的查询时,TIMESTAMP字段将呈现为LONG类型。这是一个巨大的数字。 但是在zeppelin上使用JDBC解释器执行查询时,TI

我们希望在执行选择查询时将Timestamp列呈现为日期。

当我在zeppelin源中添加BigQueryInterpreter.java中的日志时,字段值将打印为长类型,即大数字。因此,如果我们想要解决这个问题,那么正确的方法是什么,因为zeppelin解释器使用bigquery google api服务,即google-api-services-bigquery-v2-rev300-1.20.0

  

for(TableRow row:response.getRows()){           for(TableCell field:row.getF()){             logger.error(" field value:{}",field.getV()。toString());             msg.append(field.getV()的toString());             msg.append(TAB);           }

Timestamp field rendered as number

SQl, timestamp rendered as date

那么我们怎样才能确保bigquery将timstamp作为日期而不是long类型返回,如何解决问题呢?

1 个答案:

答案 0 :(得分:0)

由于Zeppelin在内部使用Long,您可以让他们的开发人员添加一种方法来将数据作为时间戳返回,或者您可以在查询后自己转换数据。

如果是Java,您可以尝试this