2017-12-14 12 views
0

Bigquery 인터프리터를 사용하여 zeppelin에서 Bigquery 쿼리를 실행 중이며, 유형이 TIMESTAMP 인 필드가있는 테이블에서 쿼리가 실행됩니다.bgiquery - zeppelin 타임 스탬프가 날짜로 렌더링되지 않음

동작 :1. Google bigquery 콘솔에서 쿼리를 실행하면 TIMESTAMP 필드가 날짜로 표시됩니다.이 값은 사람이 읽을 수있는 유효한 기본 동작입니다. 그것도 모든 SQL 데이터베이스와 동일합니다. 2. bigquery 인터프리터를 사용하여 zeppelin에서 동일한 쿼리를 실행하면 TIMESTAMP 필드가 LONG 유형으로 표시됩니다. 즉, 큰 숫자가됩니다. 그러나 쿼리가 JDBC 인터프리터를 사용하여 실행될 때 zeppelin에서 TI

select 쿼리를 수행 할 때 Timestamp 열을 날짜로 렌더링해야합니다.

zeppelin 소스의 BigQueryInterpreter.java에 로그를 추가하면 필드 값이 긴 유형 즉 큰 숫자로 인쇄됩니다. , 비행선 인터프리터, 즉 구글-API-서비스-BigQuery를-V2-rev300-1.20.0

(TableRow 행에 대한 BigQuery에 구글 API 서비스를 사용하기 때문에 그래서 우리는이 문제를 해결하려면, 올바른 접근 방식은 무엇인가 : response.getRows()) { for (TableCell 필드 : row.getF()) { logger.error ("필드 값 : {}", field.getV(). toString()); msg.append (field.getV(). toString()); msg.append (TAB); }

Timestamp field rendered as number

SQl, timestamp rendered as date

그래서 우리가 어떻게 확인 BigQuery를 대신 긴 형식의 날짜로 timstamp 반환 할 수 있습니다, 어떻게 문제가 해결 될 수 있는가?

+0

이 문제는 Zeppelin Interpreter에서만 발생합니다. 왜 데이터를 가져온 후에 긴 값을 다시 타임 스탬프로 다시 변환 할 수 없습니까? –

답변

0

Zeppelin은 내부적으로 Long을 사용하므로 개발자가 데이터를 타임 스탬프로 반환하는 방법을 추가하거나 직접 쿼리 데이터를 변환 할 수 있습니다.

Java 인 경우 this을 시도 할 수 있습니다.