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