第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將空值設(shè)置為缺失表字段的默認值

將空值設(shè)置為缺失表字段的默認值

米琪卡哇伊 2022-05-25 17:25:01
我正在使用 Java 和 SQL 將數(shù)據(jù)移動到新表中。我想要:從 BigQuery 中的舊表中提取數(shù)據(jù)更新/修改多個條目將其推送到 BigQuery 中的另一個現(xiàn)有表不幸的是,一些舊數(shù)據(jù)遵循不同的模式。一些舊表可能有從一到幾百個缺失的列(字段)。我沒有任何可靠的方法來生成或填充這些缺失的數(shù)據(jù),所以我決定將其保留為空。如何添加具有默認空值的列?目前,我正在使用 SQL QueryJobConfiguration 來拉取、更新和推送數(shù)據(jù)到 BQ:QueryJobConfiguration queryConfig =             QueryJobConfiguration.newBuilder(               "SELECT  PARSE_TIMESTAMP('%b %d %T %Y', CONCAT(time, ' 2018')) MyTimestamp, * EXCEPT(time)"                + "FROM `myProject:MyDataset.MyTable` ")               .setUseLegacySql(false)               .setWriteDisposition(WriteDisposition.WRITE_APPEND)                   .setDestinationTable(TableId.of(MyOtherDataset, MyOtherTable))               .build();當(dāng)我嘗試運行它時,BigQuery 會拋出一個異常,聲稱數(shù)據(jù)缺少一列:線程“主”com.google.cloud.bigquery.BigQueryException 中的異常:架構(gòu)更新無效。新架構(gòu)中缺少字段 OtherField
查看完整描述

1 回答

?
阿晨1998

TA貢獻2037條經(jīng)驗 獲得超6個贊

經(jīng)過一堆測試,我發(fā)現(xiàn) BQ 不允許我推送,因為我有幾個字段設(shè)置為“REQUIRED”而不是“NULLABLE”。我完全忘記了他們。幸運的是,BigQuery 有一個實驗方法:setSchemaUpdateOptions。您可以像這樣實現(xiàn)它:

List<SchemaUpdateOption> SchemaUpdate = Arrays.asList(JobInfo.SchemaUpdateOption.ALLOW_FIELD_RELAXATION);
.setSchemaUpdateOptions(SchemaUpdate)

ALLOW_FIELD_RELAXATION 本質(zhì)上允許您在任何字段上用 NULLABLE 臨時替換 REQUIRED 模式。


查看完整回答
反對 回復(fù) 2022-05-25
  • 1 回答
  • 0 關(guān)注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號