我有包含空字符串的gz CSV文件。当我在BQ中导入时,我将所有这些空字符串都作为NULL,而实际上我需要它们作为空字符串。在BigQuery中导入空字符串
一排在我的CSV文件看起来像:
ip,aahsjjjja,,,,u,opera,x11,pc,2016-06-13,2016-06-13,1,1,1
我需要3,第4和第5栏是空的,而不是NULL。
任何建议如何在导入过程中这样做?
在此先感谢! 让我知道我是否可以提供更多信息。
最佳, 加林娜
我有包含空字符串的gz CSV文件。当我在BQ中导入时,我将所有这些空字符串都作为NULL,而实际上我需要它们作为空字符串。在BigQuery中导入空字符串
一排在我的CSV文件看起来像:
ip,aahsjjjja,,,,u,opera,x11,pc,2016-06-13,2016-06-13,1,1,1
我需要3,第4和第5栏是空的,而不是NULL。
任何建议如何在导入过程中这样做?
在此先感谢! 让我知道我是否可以提供更多信息。
最佳, 加林娜
检查Load Job配置configuration.load.quote属性:
用来报价数据部分的CSV文件中的值。 BigQuery 将字符串转换为ISO-8859-1编码,然后使用编码字符串的第一个 字节将数据拆分为原始二进制状态。 。 默认值是一个双引号(““”)如果你的数据不 包含引用的部分,属性值设置为
empty string
需要明确的是 - 你的榜样行应该如下
ip,aahsjjjja,"","","",u,opera,x11,pc,2016-06-13,2016-06-13,1,1,1
请注意,更改引号字符不会改变BQ如何解释这些字段:它们仍将被加载为空。 –
我没有得到您的评论。你只是在你的回答中重复相同的建议:o) –
哦,我明白了 - 你以为我建议改变报价charachter?不 - 我只是指出它可以用于加载csv –
当转换CSV,BQ解释空字符串作为空,""
作为非空空字符串。如果你有过怎样产生的CSV控制,您可以用""
更换空字符串,以获得预期结果
另一种方法是像现在一样加载数据,然后运行查询来清理数据。例如:
SELECT ..., IFNULL(x, "") x, ...
FROM table
缺点是,这会增加您的提取的另一个步骤,您将支付额外的查询费用。
这是我第一次考虑做的事情,但表的大小和数量非常大,所以我希望避免这些额外的查询成本。但是,这似乎是不可避免的。谢谢你们! –
该文件是否位于GCS?如果是这样,您可以使用联合源加载它并一次性转换字段。 –