当 bq 加载时,VARCHAR(30) 的 'NULL' 值不是 NULL 被视为空值



我试图将csv文件加载到bigquery表中。有些列的类型是 VARCHAR(30( 而不是 NULL,有些值是 'NULL'。因此,当我使用命令bq加载时,出现以下错误:

读取数据时出错,错误消息:"NULL"为空,表示需要

我想将"空"值视为非空值。 我想知道解决这个问题的最佳解决方案是什么。

在这种情况下,最好先处理数据,然后再将其导入 BigQuery。您可以使用 Cloud Dataprep 来处理NULL值,并将其转换为空字符串或任何您认为合适的字符串。您可以按照以下步骤操作:

  1. 在云控制台中,转到数据准备
  2. 创建流
  3. 添加数据集(导入 CSV 文件(
  4. 创建新配方
  5. 在转换下选择"替换">
  6. 选择源数据列
  7. 在"匹配模式"下,添加以下正则表达式/^$/(这将匹配空字符串(
  8. 选择您认为合适的新字符串值

作业完成后,您可以将结果导出为 csv 并将其导入 BigQuery。

请注意,Dataprep 将NULL值视为文档中所述的MISSING

最新更新