我正在使用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类型返回,如何解决问题呢?
答案 0 :(得分:0)
由于Zeppelin在内部使用Long,您可以让他们的开发人员添加一种方法来将数据作为时间戳返回,或者您可以在查询后自己转换数据。
如果是Java,您可以尝试this。