使用@google-cloud/bigquery-storage时无法导入adapt的问题求助
问题解决:@google-cloud/bigquery-storage中adapt模块无法获取的问题
原因分析
你遇到的问题是因为新版本的@google-cloud/bigquery-storage库调整了模块结构,adapt不再作为顶层导出对象,直接解构顶层导出会得到undefined。
正确的导入方式
方式1:直接导入adapt子模块的目标方法
修改导入代码,单独引入需要的转换方法:
const { v1 } = require('@google-cloud/bigquery-storage'); const { BigQueryWriteClient } = v1; const { BigQuery } = require('@google-cloud/bigquery'); // 直接导入转换方法 const { convertBigQuerySchemaToStorageTableSchema } = require('@google-cloud/bigquery-storage/build/src/adapt');
方式2:导入完整的adapt对象
如果需要使用adapt中的多个方法,也可以导入整个adapt对象:
const { v1 } = require('@google-cloud/bigquery-storage'); const { BigQueryWriteClient } = v1; const { BigQuery } = require('@google-cloud/bigquery'); // 导入adapt对象 const adapt = require('@google-cloud/bigquery-storage').adapt;
修正后的代码示例
const { v1 } = require('@google-cloud/bigquery-storage'); const { BigQueryWriteClient } = v1; const { BigQuery } = require('@google-cloud/bigquery'); const { convertBigQuerySchemaToStorageTableSchema } = require('@google-cloud/bigquery-storage/build/src/adapt'); async function BQStorageWrite() { const bigquery = new BigQuery({ projectId: bqProjectId }); const dataset = bigquery.dataset(bqDataSetId); const table = await dataset.table(bqTableId); const [metadata] = await table.getMetadata(); const storageSchema = convertBigQuerySchemaToStorageTableSchema(metadata.schema); // 后续写入数据的逻辑 }
内容的提问来源于stack exchange,提问作者DbxD
相关产品推荐
相关产品推荐

