空值显示为java.lang.Object@674621fd,同时使用 java 中的 jobs.query API 执



在使用jobs.query API从bigquery表中选择数据时,表中的NULL 值作为对象哈希码java.lang.Object@674621fd返回。

我想按原样检索这些空值。你能帮我这个吗?

以下是我正在使用的代码:

QueryResponse query = bigquery.jobs().query(projectId, new QueryRequest().setQuery(querySql)).execute();
for (TableRow row : query.getRows()) {
for (TableCell field : row.getF()) {
System.out.print(field.getV());
System.out.println();
}
System.out.println();
}

环境: 爪哇 1.8 Bigquery API V2 - google-api-services-bigquery-v2-rev20200415-1.30.9.jar

谢谢 什鲁蒂

这就是传统 BigQuery API 的工作方式。对于 NULL 值,它返回哈希代码以避免 NPE。

要检索实际的空值,我们需要使用 Cloud Bigquery API https://github.com/googleapis/java-bigquery

今天遇到了这个。我的要求是,如果值null,则执行一些逻辑。我用com.google.api.client.util.Data#isNull实现了这一目标.

例:

import com.google.api.client.util.Data;
// ...
private String getStringValue(TableCell cell) {
return Data.isNull(cell.getV()) ? null : cell.getV().toString();
}

最新更新