我有一系列.txt
文件,需要将它们上传到Google Cloud,以便在BigQuery中从中创建一些表。这些文件是其分隔符为“;”的表。
由于某种原因,即使文件指定为这种形状,BigQuery似乎也无法识别列(自动或不自动)时出现问题。作为分隔符。
我生成了一个示例表,然后查找并替换了';'带有一些','并将文件另存为.csv
。现在,BigQuery在创建apt表时没有问题。
问题: 是否应该查找并替换所有表中的所有分隔符?还是我错过了什么?
如果是,如何在OS 10上实现sep提示命令? (文件很大,我在使用UltraEdit时也无法及时替换字符)
最好!
答案 0 :(得分:1)
要解决此问题-您可以上传仅包含一列的文件,然后在BigQuery中保存数据后-使用SQL将其解析为所需的任何模式。我认为这是处理此问题的最通用,最简单的方法。通常,new Foo()
会在以下非常简化的示例中使用,或更复杂的情况下,SPLIT(col, ';')
REGEXP_EXTRACT_ALL()
有结果
#standardSQL
WITH `project.dataset.table` AS (
SELECT 'aa,a;bbb;ccc' col
)
SELECT
SPLIT(col, ';')[SAFE_OFFSET(0)] col1,
SPLIT(col, ';')[SAFE_OFFSET(1)] col2,
SPLIT(col, ';')[SAFE_OFFSET(2)] col3
FROM `project.dataset.table`