我有一个将GCS中的CSV文件加载到BQ的管道。详细信息如下:Import CSV file from GCS to BigQuery。
我将ParDo中的CSV拆分为TableRow,其中某些字段为空。
String inputLine = c.element();
String[] split = inputLine.split(',');
TableRow output = new TableRow();
output.set("Event_Time", split[0]);
output.set("Name", split[1]);
...
c.output(output);
我的问题是,如何在BigQuery中将空字段显示为null?目前,他们正在空旷的田地里来。
答案 0 :(得分:2)
它在BigQuery中以空字符串形式出现,因为当您使用split()
时,它将在数组中返回,,
而不是null
的空字符串。 / p>
两个选项:
output
中设置字段。null
中的字段显式设置output
。无论哪种方式都会导致BigQuery的null
。
注意:小心分割Java中的字符串,如下所示。 split()
将移除前导和尾随空洞。请改用split("," -1)
。请参阅here。
BTW :除非您在Dataflow中进行一些复杂/高级转换,否则您不必使用管道加载CSV文件。您可以load或阅读directly from GCS。