加载bq时,VARCHAR(30)NOT NULL的'NULL'值被视为null

时间:2018-06-29 01:51:30

标签: google-bigquery

我试图将csv文件加载到bigquery表中。在某些列中,类型为VARCHAR(30)NOT NULL,而某些值则为'NULL'。因此,当我使用命令bq load进行加载时,出现以下错误:

读取数据时出错,错误消息:所需的'NULL'为空

我想将'NULL'值视为NOT NULL。 我想知道什么是最好的解决方案。

1 个答案:

答案 0 :(得分:0)

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

  
      
  1. 在云控制台中,转到Dataprep
  2.   
  3. 创建流程
  4.   
  5. 添加数据集(导入CSV文件)
  6.   
  7. 创建新食谱
  8.   
  9. 在转换下,选择“替换”
  10.   
  11. 选择原始数据列
  12.   
  13. 在“匹配模式”下,添加以下正则表达式/^$/(这将匹配空字符串)
  14.   
  15. 选择您认为合适的新字符串值
  16.   

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

请注意,如documentation

中所述,Dataprep将NULL值视为MISSING