我的要求是从不同来源(Facebook,youtube,双击搜索等)提取数据并加载到BigQuery中。当我尝试提取数据时,在某些源中,当列为空时,我得到“NULL”。
我尝试将相同的数据加载到BigQuery,BigQuery将其视为字符串而不是NULL(空)。
现在替换“”(空字符串),其中NULL在加载到BigQuery之前。有没有办法直接加载文件而不进行任何操作(替换)。
谢谢,
答案 0 :(得分:2)
源文件的文件格式是什么,例如CSV,New Line Delimited JSON,Avro等?
原因是CSV将空字符串视为空, NULL 是字符串值。因此,如果您不想在加载前操作数据,则应将文件保存为NLD Json格式。
正如您提到的那样,您从社交媒体平台提取数据,我假设您正在使用他们的REST API,因此您可以将这些数据保存在NLD Json中而不是CSV中。
回答你的问题我们有办法从网络控制台加载吗?: 是,转到bigquery项目控制台https://bigquery.cloud.google.com/并在数据集中创建表,您可以在其中指定源文件和表架构详细信息。
从评论部分(为方便其他观众):
bq命令中是否有任何选项?
试试这个:
bq load --format=csv --skip_leading_rows=1 --null_marker="NULL" yourProject:yourDataset.yourTable ~/path/to/file/x.csv Col1:string,Col2:string,Col2:integer,Col3:string
答案 1 :(得分:2)
您可以考虑运行类似于以下命令:bq load --field_delimiter =“\ t”--null_marker =“\ N”--quote =“”\ 项目:DATASET.tableName gs://bucket/data.csv.gz table_schema.json
可以从对“将数据从MySQL迁移到BigQuery的最佳实践”question的回复中收集更多详细信息。